zoukankan      html  css  js  c++  java
  • 吴裕雄--天生自然python学习笔记:python用 Selenium 组件实现浏览器操作自动化

    一般情况下,我们都是用手工操作的方式来对浏览器进行各种操作 。 实际上,
    只要我们安装一个自动化操作组件, Python 就可以让我们的很多操作实现自动化 。
    Selenium 组件
    在开发网页时,用户接口的测试向来是一件相当不容易的事情,如果用手动方
    式进行测试的各种操作,不仅效率低而且容易出错 。 Selenium 的出现就是为了解决
    这个问题,它可以通过指令实现对网页操作的自动化,从而完成自动测试的功能。
    除此之外, Selenium 还可以将许多其他的网页操作实现自动化,井能在指定时间自
    动运行,功能相当强大。
    安装 Selenium
    使用 Se l enium 前,我们首先必须安装 Selenium 组件,安装命令如下:
    pip install selenium
    下载 Chrome WebDriver 
    要自动操作 Google Chrome 浏览器,还须安装相关的驱动程序,请根据自己的
    操系统( Linux, Mac, Windows )下载 Chrome WebDriver ,网址如下:
    http://chromedriver.storage.googleapis.com/index.html?path=2.27/ 

    下载文件chromedriver_win32.zip即可。即使电脑是64位也没有关系,因为你安装的谷歌是32位的 
    解压之后,将chromedriver.exe放到谷歌浏览器的安装目录中:在开始菜单中,找到谷歌浏览器,然后右键“打开文件位置”,我的是C:Program Files (x86)GoogleChromeApplication 
    将谷歌浏览器的安装目录,添加到系统环境变量path中。 

     

     

     

     

    创建 Google Chrome 浏览器对象后,就可以通过 getO 方法连接到指定网址,最
    后用 quit()方法关闭浏览器。 以百度网的连接和退出为例,代码如下 :
    from selenium import webdriver
    
    browser= webdriver.Chrome()
    browser.get('http://www.baidu.com')
    browser.quit()
    我们还可以把要浏览的网站建立一个列表,这样就能依次访问这些网站。如先
    打开 Chrome 浏览器,把窗 口 最大化,然后每 3 秒打开一个列表 中的网站 , 最后关 闭
    浏览器 。
    from time import sleep
    from selenium import webdriver
    
    urls = ['http://www.baidu.com','http://news.sina.com.cn/','http://www.wsbookshow.com']
    
    browser = webdriver.Chrome()
    browser.maximize_window
    for url in urls:
        browser.get(url) 
        sleep(3)
    browser.quit()
    查找网页元素
    如果我们想要与网页进行互动,比如,我们要单击下单锻钮、超链接或要输入
    文字 ,那么我们必须先获得网页元素,这样才能对这些特定元素进行操作 。
    Selenium Webdriver API 提供了 多种获取网页元素的方法。 如下表所示 :

    在以上各个方法名称中的 element 后面加上 s ,会返回特定查找的元素列表。
    下面我们通过用 Chrom 浏览器访问http://www.wsbookshow.com/bookshow/jc/bkcxsj/12442.html这个 HTh伍页面中的元素,来对以上方法进行示例说明。
    from selenium import webdriver #导入webdriver
    
    url='http://www.wsbookshow.com/bookshow/jc/bk/cxsj/13054.html'  #以此链接为例
    browser=webdriver.Chrome()  #生成Chrome浏览器对象(结果是打开Chrome浏览器)
    browser.get(url)    #在浏览器中打开url

    login_form=browser.find_element_by_id("menu_1")   ##查找id="menu_1"的元素
    print(login_form.text)   #显示元素内容
    #browser.quit()   #退出浏览器,退出驱动程序

    username=browser.find_element_by_name("username")   #查找name="username"的元素
    password=browser.find_element_by_name("pwd")  #查找name="pwd"的元素
    login_form=browser.find_element_by_xpath("//input[@name='arcID']")
    login_form=browser.find_element_by_xpath("//div[@id='feedback_userbox']")
    continue_link=browser.find_element_by_link_text('科技类图书')
    continue_link=browser.find_element_by_link_text('英语')
    heading1=browser.find_element_by_tag_name('h1')
    content=browser.find_elements_by_class_name('topbanner')
    content=browser.find_elements_by_css_selector('.topsearch')
    #print(content.get_property)
    browser.quit()   #退出浏览器,退出驱动程序
  • 相关阅读:
    【转】python装饰器
    【原】python异步学习
    【转】Docker学习_本地/容器文件互传(5)
    【原】容灾/容错概念理解
    【原】thinkphp实现存储session至redis
    【原】thinkphp修改Redis操作类,支持选择数据库功能及添加其他方法
    高性能CSS(三)
    Free Code Camp社区对数百计编程学习者进行的统计希望告诉你什么?
    最精简24L01程序--发送
    金日
  • 原文地址:https://www.cnblogs.com/tszr/p/12026133.html
Copyright © 2011-2022 走看看