Selenium是ThroughtWorks公司开发的一套Web自动化测试工具。它分为三个组件:Selenium IDE,Selenium RC (Remote Control),Selenium Webdriver。Selenium IDE是firefox的一个插件,允许测试人员录制脚本并回放。Selenium RC和Selenium Webdriver是测试框架,提供多种语言的API。不同的是,Selenium Webdriver以一种更底层、更灵活的方式来操作浏览器,并不仅仅使用JavaScript。这样它可以绕开浏览器的沙箱限制,实现Selenium RC不支持的框架、弹出窗口、页面导航、下拉菜单、基于AJAX的UI元素等控件的操作。以及,Selenium Webdriver不需要本地服务器。Selenium 1.x版本只包含前两个组件。从2.0开始Webdriver加入其中。主要是来解决https的加密问题。
Webdriver在使用之前,需要下载一个浏览器所对应用的驱动插件,请根据自己不同的浏览器版本,进行下载:Google的我推荐给大家一个百度地址:链接:https://pan.baidu.com/s/1qZ2LfmW 密码:qixa下载以后,并把chromdriver放在google.exe那个当前目录下面。
import os from selenium import webdriver from selenium.webdriver.common.keys import Keys chromedriver = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe" #print(os.environ) os.environ["webdriver.chrome.driver"] = chromedriver # 把chromedriver.exe的路径加入环境变量中 driver = webdriver.Chrome(chromedriver) # 启动谷歌浏览器 driver.get("http://www.python.org") # 用浏览器打开该网址 driver.quit()结果如下图:
1. find_elements_by_name("test")假如有如下一个页面:
<input type="text" name="passwd" id="passwd-id" class="input-class"/>代码:
element = driver.find_elements_by_name("passwd")2. find_elements_by_id()
element = driver.find_element_by_id("passwd-id")find_element_by_tagname
element = driver.find_element_by_tagname("input")3. find_element_by_class_name("input-class")
4. find_elements_by_tag_name("iframe")
DOM的Tag元素 用Tag name 定位元素的例子: <iframe src="..."></iframe> element = driver.find_elements_by_tag_name("iframe")5. find_element_by_link_text()页面:
<a href="http://www.google.com/search?q=baidu">baidu</a>代码:
element = browser.find_elements_by_link_text("baidu")6.xpath 这个特别强大,所有的元素都可以通过这个可以找到。
XPath是XML Path的简称,由于HTML文档本身就是一个标准的XML页面,所以我们可以使用XPath的语法来定位页面元素。 绝对路径: 根元素开始,即html开始用/ 相对路劲: 任意符合条件的元素 // 查找页面上所有的input元素://input 查找页面上第一个form元素内的直接子input元素(即只包括form元素的下一级input元素,使用绝对路径表示,单/号)://form[1]/input 查找页面上第一个form元素内的所有子input元素(只要在form元素内的input都算,不管还嵌套了多少个其他标签,使用相对路径表示,双//号)://form[1]//input 查找页面上第一个form元素://form[1] 查找页面上id为loginForm的form元素://form[@id='loginForm'] 查找页面上具有name属性为username的input元素://input[@name='username'] 查找页面上id为loginForm的form元素下的第一个input元素://form[@id='loginForm']/input[1] 查找页面具有name属性为contiune并且type属性为button的input元素://input[@name='continue'][@type='button'] 查找页面上id为loginForm的form元素下第4个input元素://form[@id='loginForm']/input[4]
转载于:https://www.cnblogs.com/yangjian319/p/9219058.html