• selenium重定项


    selenium

    一种自动化测试工具,可以模拟人来操作浏览器,执行效率有时候还不如人快,因为需要浏览器页面加载完成才能操作,对网速要求严格,可以用于重复性的操作。

    准备工作

    按照对应平台下载对应版本谷歌浏览器驱动

    linux

    下载好linux版本对应驱动后

    Ubuntu安装 chromedriver:

    将下载的文件移动到软件应该呆的目录去:

    sudo mv chromedriver /usr/local/bin/chromedriver

    改变用户执行的权限:

    sudo chmod 777 /usr/local/bin/chromedriver

    检验是否正常使用:

    chromedriver --version

    windows

    放在任意环境变量目录下就行,一般放python解释器目录下

    G:python35Scripts

    python3 安装selenium

    pip install selenium

    开始写代码

    这里分成两种情况

    新网址,本页刷新

    注意点:

    这一句会切换到新url对象,如果不写这句,浏览器对象会去原来url页面中,找元素操作,这时候我们希望操作的元素找不到就会报错。

    sreach_window=driver.current_window_handle

    第二点注意点是在跳转到新页面以后要等页面加载完毕才能操作不然也会报错,所以在对新页面进行操作之前往往需要延时几秒等待页面加载完毕,具体延时事件和页面加载速度有关系。

    time.sleep(10)

    # 此代码是来使用百度搜索引擎,搜索“58同城”,并本页刷新进入58同城页面
    import time
    
    from selenium import webdriver
    # 
    driver = webdriver.Chrome()
    # 请求百度 链接
    url = 'http://www.baidu.com'
    
    # 执行操作,打开浏览器输入url
    driver.get(url)
    
    # 定位页面表单
    ele_kw = driver.find_element_by_id('kw')
    # 向表单中填入数据
    ele_kw.send_keys('58同城')
    # 定位页面搜索按钮
    ele_su = driver.find_element_by_id('su')
    # 延时几秒确保页面加载完毕
    time.sleep(1)
    sreach_window=driver.current_window_handle
    # 点击“百度一下”按钮
    ele_su.click()
    
    # 延时几秒确保页面加载完毕
    time.sleep(3)
    # 找到“58同城”官网的xpath,点击该标签进入
    tongcheng = driver.find_element_by_xpath('//*[@id="1"]/h3/a[1]').click()
    
    # 页面全加载完毕后会关闭浏览器
    driver.close()
    

      

    新网址,新标签页刷新

    注意点

    将处理对象变为新标签页面,否则浏览器操作对象会找不到要操作页面中的元素

    driver.switch_to.window(driver.window_handles[-1])

    # 此代码直接进入58同城主站,然后代开租房信息,会出现一个新标签页,之后会将处理者切换到新标签页
    import time
    
    from selenium import webdriver
    # 
    driver = webdriver.Chrome()
    # 请求百度 链接
    url = 'http://www.baidu.com'
    
    # 执行操作,打开浏览器输入url
    driver.get(url)
    
    # 延时很多秒确保页面加载完毕,58同城网站实在是内容太多,多等等
    time.sleep(20)
    # 将页面切换到新出现标签
    driver.switch_to.window(driver.window_handles[-1])
    sreach_window3=driver.current_window_handle
    tongcheng2 = driver.find_element_by_xpath('/html/body/div[3]/div[1]/div[1]/div/div[1]/div[1]/span[1]/a').click()
    
    # 页面全加载完毕后会关闭浏览器
    driver.close()
    

      




  • 相关阅读:
    简单地通过Python库使用python的socket编程
    js 实现继承的几种方式
    JAVA中获取当前系统时间
    IntelliJ Idea 常用快捷键列表
    关于报错:There is already 'xxxController' bean method的解决方法
    mysql 使用 GROUP BY 时报错 ERROR 1055 (42000)
    安装系统,用cmd进行分区
    Bootstrap关闭当前页
    bootstrap的日期选择器
    Bootstrap如何关闭弹窗
  • 原文地址:https://www.cnblogs.com/zxy6/p/13150763.html
Copyright © 2020-2023  润新知