在平常与一些刚学自动化测试的朋友聊天的时候,总结出一个规律,为什么明明是这个定位啊,怎么就是定位不到呢。其实吧,selenium 定位也是有技巧的呢。
下面就由我给大家讲讲selenium如何定位页面元素的。
Selenium使用find_element定位单个元素和find_element定位元素组。
本文主要讲定位单个元素find_element, 定位元素一共有八种:
1、find_element_by_id:通过页面元素id属性来定位,适用于当前页面只有一个,并且是唯一的场景下使用。
2、find_element_by_name: 通过页面元素name属性来定位。
3、find_element_by_tag_name:通过页面标签元素定位,如
4、find_element_by_xpath:Xpath的定位方式是一个非常强大的定位方式,可以定位页面中几乎所有的元素。
5、find_element_by_class_name:通过页面元素css样式定位
6、find_element_by_partial_link_text:通过页面中超文本连接某个字符定位。
7、find_element_by_link_text: 通过页面中超文本连接文字定位。
8、find_element_by_css_selector: 通过页面元素css样式定位。
实战1:
博客园导航条实战,页面如图
在键盘按下f12键,可查看源代码如下
1、使用find_element_by_id定位【博客园】超文本连接,并点击。
2、使用find_element_by_link_text定位【新随笔】超文本连接,并点击。
3、find_element_by_partial_link_text定位【新随笔】超文本连接,并点击。
4、find_element_by_css_selector定位【新随笔】超文本连接,并点击。
脚本实现
from selenium import webdriver
#打开谷歌浏览器
driver = webdriver.Chrome()
#最大化窗口
driver.maximize_window()
#打开测试网站
driver.get("https://www.cnblogs.com/zkn11199/p/5589866.html")
#通过id定位元素
driver.find_element_by_id("blog_nav_sitehome").click()
#通过超文本连接文字定位
driver.find_element_by_link_text("新随笔").click()
#通过超文本连接包含文字定位
driver.find_element_by_partial_link_text("笔").click()
#通过css样式定位元素
driver.find_element_by_css_selector("a#blog_nav_newpost.menu").click()
实战2:
百度页面实战,页面如图
在键盘按下f12键,可查看源代码如下
1、使用find_element_by_class_name定位搜索框,并输入关键字【强尤】。
2、使用find_element_by_xpath定位百度一下按钮,并点击。
脚本实现:
from selenium import webdriver
#打开谷歌浏览器
driver = webdriver.Chrome()
#最大化窗口
driver.maximize_window()
#打开测试网站
driver.get("http://www.baidu.com")
#通过class定位元素
driver.find_element_by_class_name("s_ipt").send_keys("强尤")
#通过xpath定位元素
driver.find_element_by_xpath("//input[@id='su']").click()
好了,本次教程就结束了,如果你有什么问题,或者关于这个定位不明白的,可以私信我,或者发评论,我会回的。
领取专属 10元无门槛券
私享最新 技术干货