一、介绍
selenium是应用于Web应用程序最流行的开源测试自动化测试工具。Selenium支持多种系统环境(Windows,Mac,Linux)和浏览器(Chrome,Firefox,IE和Opera等浏览器)。 它的脚本可以用各种编程语言编写,如Java,Groovy,Python,C#,PHP,Ruby和Perl。
二、官方网址
三、启动火狐浏览器
1、下载geckodriver.exe;
2、geckodriver.exe放在python安装目录下D:\Software\Python\Python37;
3、输入python代码
from selenium import webdriver
driver = webdriver.Firefox() #Firefox浏览器
# driver = webdriver.Chrome() #Chrom浏览器
# driver = webdriver.Ie() #IE浏览器
# driver = webdriver.Edge() #Edge浏览器
# driver = webdriver.Opera() #Opera浏览器
driver.get("https://www.baidu.com/") #访问百度
driver.quit() #退出浏览器
4、运行代码
四、单元素定位
1、通过元素的id属性: driver.find_element_by_id("kw")
2、通过元素的name属性:driver.find_element_by_name("wd")
3、通过元素的class属性:driver.find_element_by_class_name("s_ipt")
4、右键copy xpath:driver.find_element_by_xpath('//*[@id="kw"]')
5、超链接文本即a标签对应的文本:driver.find_element_by_link_text(u"新闻")
6、模糊匹配超链接文本即a标签对应的文本:driver.find_element_by_partial_link_text(u"新")
7、右键copy css选择器:driver.find_elements_by_css_selector('#kw')
五、多元素定位
1、如果通过tag_name定位到的是多个元素,那么返回的元素是一个列表,需要具体定位到list的索引,比如百度的输入框是在第8位,那么索引就是7:driver.find_elements_by_tag_name('input')[7]
2、如果通过id='login'定位,发现id不是唯一的,也是需要具体定位到具体的索引,比如登录按钮的索引是2:driver.find_elements_by_id('login')[2]
六、iframe元素定位
1、如果通过上述方法无法定位到元素,那么有可能定位的元素属性在iframe框架中。
2、iframe对象代表一个HTML的内联框架,如果存在iframe框架,首先要进入到iframe框架,再定位到iframe框架中的元素。定位的方式分为两种,一种是以id的方式,一种是以索引的方式。
3、以id的方式:driver.switch_to_frame(‘text’),其中text为iframe元素的id属性。
4、以索引的方式:driver.switch_to_frame(0),如果iframe只有一个,那么索引就是0.
5、如果存在多层嵌套的iframe元素,那么根据需要进入到第一层frame框架中,比如第一层iframe元素的id为parent,那么先driver.switch_to_frame(‘parent’),然后进入第二层frame框架中,比如第二层iframe元素的id为son,那么就是driver.switch_to_frame(‘son’),如果需要跳出iframe框架,那么就是driver.switch_to_default_content()

网友评论