目录

一.元素定位

1.根据id属性进行定位(id是唯一的)

2.name属性进行定位

3.tag name(标签名) 定位和class name(标签中的class属性)定位

(1)使用class name 定位搜狗搜索框

(2)使用tag name(标签名进行定位)

4.CSS定位

5.X-Path定位

6.link text(全名) 定位 和 Partial link text (部分名)定位(链接名称)

(1)link text定位

 (2)partial link text 定位


一.元素定位

因为使用selenium进行自动化测试,我们首先要定位到元素的位置,然后通过指定事件才能进行之后的执行,所以我们现在来学习一下常用的定位方法;这里的定位方法与HTML和CSS中的属性密切相关。

1.根据id属性进行定位(id是唯一的)

如果我们需要操作的元素有id属性,我们就可以通过id进行定位。

#  从selenium中引入webdriver驱动
from selenium import webdriver
# 引入事件包(为了之后能够观察自动化测试)
import time
driver = webdriver.Chrome()
url = "https://www.baidu.com"
driver.get(url)
# 通过id定位百度输入框,send_keys是在输入框中填充内容
driver.find_element_by_id("kw").send_keys("牛客网")
time.sleep(5)
# 关闭浏览器
driver.quit()

2.name属性进行定位

#  从selenium中引入webdriver驱动
from selenium import webdriver
# 引入事件包(为了之后能够观察自动化测试)
import time
driver = webdriver.Chrome()
url = "https://www.baidu.com"
driver.get(url)

driver.find_element_by_name("wd").send_keys("leetcode")
time.sleep(5)
# 关闭浏览器
driver.quit()

3.tag name(标签名) 定位和class name(标签中的class属性)定位

(1)使用class name 定位搜狗搜索框

from selenium import webdriver
import time
driver = webdriver.Chrome()
# 将窗口放到最大
driver.maximize_window()
driver.get("http://www.sogou.com")
# 定位搜素框并输入内容
driver.find_element_by_class_name("sec-input").send_keys("牛客网")
time.sleep(2)
driver.quit()

(2)使用tag name(标签名进行定位)

注意:在使用这两种定位方式时需要在当前页面没有重复出现,否则就会定位不到,

4.CSS定位

使用css选择器来对元素进行定位,这里我们不需要自己去分析,只需要在浏览器上打开开发者工具,然后定位到指定元素位置后,通过右键点击复制,然后复制selecter就可以了。

示例:通过css定位搜狗搜索框

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("http://www.sogou.com")
# 定位搜素框并输入内容
driver.find_element_by_css_selector("#query").send_keys("牛客网")
time.sleep(3)
driver.quit()

5.X-Path定位

XPath 是一种在XML 文档中定位元素的语言,XPath 扩展了上面id 和name 定位方式,提供了很多种可能性。通过X-Path也可以唯一定位一个元素。以Chrome浏览器为例,f12打开开发者工具,定位到需要操作的元素(如搜索框),然后右键鼠标,复制里面点击xpath即可。

通过X-Path定位搜狗搜索框

from selenium import webdriver
import time
driver = webdriver.Chrome()
# 将窗口放到最大
driver.maximize_window()
driver.get("http://www.sogou.com")
# 定位搜素框并输入内容
driver.find_element_by_xpath("//*[@id='query']").send_keys("牛客网")
time.sleep(2)
driver.quit()


 

6.link text(全名) 定位 和 Partial link text (部分名)定位(链接名称)

注意:这里的图片链接不能重复,重复也会定位不到

(1)link text定位

from selenium import webdriver
import time
driver = webdriver.Chrome()
# 将窗口放到最大
driver.maximize_window()
driver.get("http://www.sogou.com")
# 定位链接全部文字并点击
driver.find_element_by_link_text("图片").click()
time.sleep(2)
driver.quit()

 (2)partial link text 定位

from selenium import webdriver
import time
driver = webdriver.Chrome()
# 将窗口放到最大
driver.maximize_window()
driver.get("http://www.sogou.com")
# 定位链接b部分文字并点击
driver.find_element_by_partial_link_text("图").click()
time.sleep(2)
driver.quit()

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐