元素 |
方法
|
示例 |
id |
find_element_by_id('su')
|
driver.get("http://www.baidu.com") driver.find_element_by_id("kw").send_keys("selenium") driver.find_element_by_id('su').click()
|
name |
find_element_by_name("wd")
|
driver.get("http://www.baidu.com") driver.find_element_by_name("tj_trnews").click()
|
class name
|
find_element_by_class_name()
|
不常用 |
tagname |
find_element_by_tag_name()
|
div form a相似的很多,也不常用 |
link text |
find_element_by_link_text("新闻")
|
river.get("http://www.baidu.com") driver.find_element_by_link_text("新闻").click()
|
partial link text |
find_element_by_partial_link_text("新闻")
|
driver.get("http://www.baidu.com") driver.find_element_by_partial_link_text("闻").click()
|
xpath
|
绝对路径
|
driver.get("http://www.baidu.com") driver.find_element_by_xpath("/html/body/div/div/div/div[3]/a[3]").click()
|
元素属性定位
|
river.get("http://www.baidu.com") driver.find_element_by_xpath("//a[@name=\"tj_trmap\"]").click()或 driver.find_element_by_xpath("//*[@name=\"tj_trmap\"]").click()
|
层级与属性结合
|
元素本身没有可以唯一标识的属性值,如果上级元素有可以唯一标识属性的值,就可以拿来用
driver.get("http://www.baidu.com") driver.find_element_by_xpath("//form[@id=\"form\"]/span/input").send_keys("selenium") driver.find_element_by_xpath("//span[@class=\"bg s_btn_wr\"]/input[@id=\"su\"]").click()
|
使用逻辑运算符
|
driver.get("http://www.baidu.com") driver.find_element_by_xpath("//input[@id=\"kw\" and @name=\"wd\"]").send_keys("selenium") driver.find_element_by_xpath("//input[@id=\"su\" and @type=\"submit\"]").click()
|
右键-复制xpath
|
|
css |
.class
|
driver.get("http://www.baidu.com") driver.find_element_by_css_selector(".s_ipt").send_keys("selenium") driver.find_element_by_css_selector(".s_btn").click()
如果存在多个相同class的元素,可以通过nth-child(index)来寻找目标元素,如:
driver.find_element_by_css_selector(".mnav:nth-child(3)").click()
|
#id |
driver.get("http://www.baidu.com") driver.find_element_by_css_selector("#kw").send_keys("selenium") driver.find_element_by_css_selector("#su").click()
|
通过标签名定位 |
标签名重复的概率非常大,通过这种方式很难找到想要的元素 |
通过属性定位 |
driver.get("http://www.baidu.com") driver.find_element_by_css_selector("[id=\"kw\"][name=\"wd\"]").send_keys("selenium") driver.find_element_by_css_selector("[id=\"su\"]").click()
|
组合定位 |
driver.get("http://www.baidu.com") driver.find_element_by_css_selector("form[class=\"fm\"]>span>input[id=\"kw\"][name=\"wd\"]").send_keys("selenium") driver.find_element_by_css_selector("form#form>span>input#su").click()
|