[-002-]-Python3+Unittest+Selenium Web UI自动化测试之定位元素(包括父子,兄弟)及常见操作
1、常见的定位方式
id定位:find_element_by_id()
name定位:find_element_by_name()
class定位:find_element_by_class_name()
link定位:find_element_by_link_text()
partial link定位:find_element_by_partial_link_text()
tag定位:find_element_by_tag_name()
xpath定位:find_element_by_xpath()
css定位:find_element_by_css_selector()
2、xpath定位
2.1 普通的xpath定位
driver.find_element_by_xpath("xpath路径")
2.2 通过id的方式获取到的xpath
# 通过id='FormListId'进行定位 driver.find_element_by_xpath("//*[@id='FormListId']")
2.3 通过placeholder属性获取到的xpath
# 定位placeholder属性为"请搜索"的input元素,即<input placeholder="请搜索"> driver.find_element_by_xpath("//input[@placeholder='请搜索']")
2.4 通过id属性所在元素的下一个元素获取的xpath
# 定位id="formid"元素-下层元素span-下层元素第二个input driver.find_element_by_xpath("//*[@id='formid']/span/input[1]")
2.5 多条件定位xpath
# 多条件定位 driver.find_element_by_xpath("//input[@name='urd' and @value='psd']")
2.6 根据文本定位xpath
# 根据文本定位元素 driver.find_element_by_xpath("//li[text()="姓名:"]")
2.7 根据关键词定位xpath
# 根据关键字 driver.find_element_by_xpath("//a[contains(@href,"aaa")]")
2.8 文本包含 苹果 内容
#在a标签下有个文本(text)包含(contains)'苹果' 的元素 driver.find_element_by_xpath("//a[contains(text(),'苹果')]")
2.9 根据href定位元素xpath
#a的标签,链接href='http://www.baidu.com/ 的元素 driver.find_element_by_xpath("//a[@href='http://www.baidu.com/']")
3、xpath高级的定位写法(父子、兄弟节点定位)
3.1 根据兄节点定位弟节点

# 通过兄节点找到父节点,由父节点定位弟节点 driver.find_element_by_xpath("//*[text()='PPT模板']/../span[1]") # following-sibling 选取当前节点之后的同级节点 driver.find_element_by_xpath("//*[text()='PPT模板']/following-sibling::div")
3.2 根据父节点定位子节点

driver.find_element_by_xpath("//*[@id='用途']/div[1]/span") # child::input选取当前节点的input子节点 driver.find_element_by_xpath("//*[@id='用途']/child::div[1]/child::span")
3.3 根据子节点定位父节点

# ..表示父节点 driver.find_element_by_xpath("//*[text()='总结报告']/../../div") # parent::span选取当前节点的span父节点 driver.find_element_by_xpath("//div[text()='总结报告']/parent::div/parent::div")
3.4 根据弟节点定位兄节点

# 通过弟节点找到父节点,由父节点定位兄节点 driver.find_element_by_xpath("//*[text()='总结报告']/../../div[0]") # preceding-sibling 选取当前节点之前的同级节点 driver.find_element_by_xpath("//*[text()='总结报告']/parent::div/preceding-sibling::div")
4、对元素的操作
点击:click()
driver.find_element_by_id("id).click()
输入内容,send_keys()
driver.find_element_by_id(id).send_keys(text)
获取元素上的文本 text
driver.find_element_by_id(id).text
清空输入框中的文本
driver.find_element_by_id(id).clear()
获取元素的属性
driver.find_element_by_id("id").get_attribute("value")
当有些人一出生就有的东西,我们要为之奋斗几十年才拥有。但有一样东西,你一辈子都不会有,那就是我们曾经一无所有。

浙公网安备 33010602011771号