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")