• selenium的各种操作


    元素操作

    1. 点击元素 :element.click()
    2. 输入文本:element.send_keys(“文本”)
    3. 清除文本框内容:element.clear()

    浏览器界面操作

    1. 打开浏览器:webdriver.get(url)
    2. 获取浏览器标题:webdriver.title
    3. 获取当前页面的链接:webdriver.current_url
    4. 获取页面的element:webdriver.page_source
    5. 关闭窗口:webdriver.close()
    6. 刷新窗口:webdriver.refresh()
    7. 后退:webdriver.back()
    8. 前进:webdriver.forward()
    9. 窗口最大化:webdriver.maximize_window()
    10. 浏览器指定大小:webdriver.set_window_size(weight,height)
    11. 将窗口放在指定位置:webdriver.set_window_position(500,0)
    12. 获取cookies:webdriver.get_cookies()
    13. 获取当前窗口的size(返回字典型):webdriver.get_window_size()

    定位操作

    • id定位:find_element_by_id(id_=‘colorbox’)
    • xpath定位: find_element_by_xpath(self, xpath)
    • 超链接定位:find_element_by_link_text(self, link_text)
    • name定位:find_element_by_name(self, name)
    • tag定位:find_element_by_tag_name(self, name)
    • class定位:find_element_by_class_name(self, name)
    • css定位:find_element_by_css_selector(self, css_selector)

    注意
    以上定位,返回的都是一个,而且是第一个,将element改为elements返回的是多个或者一个

    案例

    from selenium.webdriver import Chrome
    #输入一个指令,键盘上的按钮,需要导入包:
    from selenium.webdriver.common.keys import Keys
    # import time
    
    
    web = Chrome()
    
    web.get("http://lagou.com")
    
    # 找到某个元素,点击它
    el = web.find_element_by_xpath('//*[@id="changeCityBox"]/p[1]/a')
    el.click() #点击事件
    
    # # 注意
    # el = web.find_element_by_name("???")#找到的是第一个
    # el = web.find_elements_by_name("???")#找到的是全部
    
    # #注意:在进行操作时,有可能会加载到一个新的页面,有时他的加载速度会比我们的执行速度慢,这就会导制程序报错
    # #解决方法:导入time包,让浏览器缓一会
    # time.sleep(1) # 让浏览器缓一缓
    
    # 找到输入框,输入python =>输入回车/点击搜索按钮
    web.find_element_by_xpath('//*[@id="search_input"]').send_keys("python",Keys.ENTER)
    
    #查找存放数据的位置,进行数据提取
    #找到页面中存放数据的所有的item
    item_list = web.find_elements_by_xpath('//*[@id="jobList"]/div[1]/div')
    for item in item_list:
        job_name = item.find_element_by_xpath('./div[1]/div[1]/div[1]/a').text
        print("工作:",job_name)
        job_company = item.find_element_by_xpath('./div[1]/div[2]/div[1]/a').text
        print('公司:',job_company)
        job_salary = item.find_element_by_xpath('./div[1]/div[1]/div[2]/span').text
        print("工资:",job_salary)
        job_request = item.find_element_by_xpath('//*[@id="jobList"]/div[1]/div[6]/div[1]/div[1]/div[2]').text
        print('要求:',job_request)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
  • 相关阅读:
    Nginx Mysql负载均衡 初步配置及验证 笔记
    【动手学深度学习】学习笔记
    Spring webflux 构建响应式 RESTful Web 服务
    k8s 创建普通用户使用
    vue3学习(十三)---全局定义事件及编写vue插件
    表示学习(Representation learning)以及相关(半监督)论文阅读
    springboot+java+ssm高校学生学籍档案信息管理系统3cvy3
    【图像处理】用于图像分类的局部约束线性编码(Python代码实现)
    含稀土铕双功能荧光磁性纳米粒子/包裹磁性稀土荧光复合物纳米微球的性能与表征
    Xilinx 7系列FPGA 高性能(HP)接口与2.5V/3.3V 外设IO接口设计考虑
  • 原文地址:https://blog.csdn.net/m0_56600567/article/details/125628404