例:
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
element=driver.find_element(By.NAME,value='wd')
element.send_keys("python")
submit=driver.find_element(By.ID,value='su')
submit.click()
sleep(3)
xpath选择元素(万金油) driver.find_element(By.XPATH, '//*[@id="kw"]')
/aaa 选取根节点为aaa的元素
/aaa/bbb 选取aaa标签下的bbb标签
//aaa 选取所有aaa标签下的元素
//aaa/bbb选取所有父元素为aaa的bbb元素
· 选取当前节点
.. 选取当前节点的父节点
css选择器选择元素 driver.find_element(By.CSS_SELECTOR, '#kw')
name属性值选择元素driver.find_element(By.NAME, 'wd')
元素中必须有name属性值
如果不止一种name值,取第一个(id同
类名选择元素element=driver.find_element(By.CLASS_NAME,value='s_ipt')
需要有class属性
如果class属性值不唯一,则不能唯一的定位到指定元素
链接文本选择元素driver.find_element(By.LINK_TEXT, 'hao123') 精准匹配
包含文本选择driver.find_element(By.PARTIAL_LINK_TEXT, 'hao')
页面加载元素需要时间,如果需要查找的元素在页面下方位置,则设置sleep()停留几秒中的时间,再进行元素查找
当定位的链接文本内容在整个页面中唯一的出现一次,那么可以定位到元素,否则默认第一个
标签名选择 driver.find_element(By.TAG_NAME, 'title')
查找元素在当前页面中是唯一的,否则默认为第一个
id选择driver.find_element(By.ID, 'su')
本文介绍了如何在自动化测试中通过Python的selenium库进行元素定位。讲解了By.XPATH、By.CSS_SELECTOR、By.NAME等不同方式的用法,并提到了元素定位可能遇到的问题,如页面加载时间和元素唯一性。同时,给出了定位链接文本和标签名的示例。

被折叠的 条评论
为什么被折叠?



