由以下实例我们可以看到,一个百度的输入框,可以用这么几种方式去定位。
#coding=utf-8 from selenium import webdriver import time browser = webdriver.Ie() browser.get("http://www.baidu.com") #########百度输入框的定位方式########## #通过id 方式定位 browser.find_element_by_id("kw").send_keys("selenium") #通过name 方式定位 browser.find_element_by_name("wd").send_keys("selenium") #通过tag name 方式(标签名称)定位,这个此处失败,因该页面有多个 input 标签 browser.find_element_by_tag_name("input").send_keys("selenium") #通过class name 方式定位 browser.find_element_by_class_name("s_ipt").send_keys("selenium") #通过CSS 方式定位 browser.find_element_by_css_selector("#kw").send_keys("selenium") #通过xphan 方式定位 browser.find_element_by_xpath("//input[@id='kw']").send_keys("selenium") ############################################ browser.find_element_by_id("su").click() time.sleep(3) browser.quit()
driver.find_element_by_css_selector("a[name=\"tj_news\"]").click()可以取title 属性
driver.find_element_by_css_selector("a[title=\"web\"]").click()也可以是取..:(类选择器)
<span style="font-size:18px;">driver.find_element_by_css_selector("a.RecycleBin").click()</span>
#xpath:attributer (属性) driver.find_element_by_xpath("//input[@id='kw']").send_keys("selenium") #input 标签下id =kw 的元素 #xpath:idRelative (id 相关性) driver.find_element_by_xpath("//div[@id='fm']/form/span/input").send_keys("selenium") #在/form/span/input 层级标签下有个div 标签的id=fm 的元素 driver.find_element_by_xpath("//tr[@id='check']/td[2]").click() # id 为'check' 的tr ,定闪他里面的第2个 #xpath:position (位置) driver.find_element_by_xpath("//input").send_keys("selenium") driver.find_element_by_xpath("//tr[7]/td[2]").click() #第7个tr 里面的第2个td #xpath: href (水平参考) driver.find_element_by_xpath("//a[contains(text(),'网页')]").click() #在a 标签下有个文本(text)包含(contains)'网页' 的元素 #xpath:link driver.find_element_by_xpath("//a[@href='http://www.baidu.com/']").click() #有个叫a 的标签,他有个链接href='http://www.baidu.com/ 的元素
<span style="font-size:14px;">#coding=utf-8 from selenium import webdriver browser = webdriver.Firefox() browser.get("http://www.baidu.com") browser.find_element_by_link_text("贴吧").click() browser.quit()</span>
子,我可以只用链接的一部分文字进行匹配:
browser.find_element_by_partial_link_text("贴").click() #通过find_element_by_partial_link_text() 函数,我只用了“贴”字,脚本一样找到了"贴吧" 的链接