selenium基础(元素定位)

 selenium元素定位

seleniun中的八种定位方式

id:通过元素id进行定位,格式:find_element_by_id()

name:通过元素的name进行定位,格式:find_element_by_name()

class name:通过元素的属性名进行定位,格式:find_element_by_class_name()

tag name:通过元素的标签名进行定位,格式:find_element_by_tag_name()

link text:通过元素的完整的链接文本的内容进行定位,格式:find_element_by_link_text()

partial link text:通过元素的部分的链接文本的内容进行定位,格式:find_element_partial_link_text()

xpath:通过xpath选择器进行定位,格式:find_element_by_xpath()

css selector:通过css选择器进行定位,格式:find_element_by_css_selector()

 css_selector定位详解

driver.find_element_by_css_selector()

css定位可以分为四类:id、class、其他属性、路径。

1 #id方式

两种方式,可以在前面加上tag名称,也可以不加

driver.find_element_by_css_selector(‘#id_value’)

driver.find_element_by_css_selector(‘tag_name#id_value’)

例:

from selenium import webdriver
import time

driver=webdriver.Firefox()
driver.maximize_window()
driver.implicitly_wait(8)
driver.get('https://www.baidu.com')
driver.find_element_by_css_selector('#kw').send_keys('css选择器')#通过css选择器中的id进行定位
driver.find_element_by_css_selector('input#su').click()#通过css选择器中的标签名+id进行定位

2 .class方式

两种方式,前面加上tag名称,也可以不加。如果不加tag名称时,点不能省略。

driver.find_element_by_css_selector(‘.class_value’)

driver.find_element_by_css_selector(‘tag_name.class_value’)

有的class_value比较长,而且中间有空格时,不能把空格原样写进去,那样不能识别。这时,空格用点代替,前面要加上tag_name。

如:driver.find_element_by_css_selector('div.panel.panel-email').click()

例:

from selenium import webdriver
import time

driver=webdriver.Firefox()
driver.maximize_window()
driver.implicitly_wait(8)
driver.get('https://www.baidu.com')
driver.find_element_by_css_selector('.s_ipt').send_keys('css选择器')#通过css选择器中的class进行定位
driver.find_element_by_css_selector('input.bg.s_btn').click()#通过css选择器中的标签名+class进行定位

3其他属性方式

两种方式,可以在前面加上tag名称,也可以不加。

driver.find_element_by_css_selector(“[attri_name=’attri_value’]”)

driver.find_element_by_css_selector("input[type='password']").send_keys('我要自學網')

driver.find_element_by_css_selector("[type='password']").send_keys('我要自學網')

from selenium import webdriver
import time

driver=webdriver.Firefox()
driver.maximize_window()
driver.implicitly_wait(8)
driver.get('https://www.baidu.com')
driver.find_element_by_css_selector("[name='wd']").send_keys('css选择器')#通过css选择器中用键值对的方式进行定位
driver.find_element_by_css_selector("input[type='submit']").click()#通过css选择器中的标签名+键值对进行定位

4路径法

两种方式,可以在前面加上tag名称,也可以不加。注意它的层级关系使用大于号“>”。

driver.find_element_by_css_selector("form#loginForm>ul>input[type='password']").send_keys('111222333')

猜你喜欢

转载自www.cnblogs.com/jingdenghuakai/p/11674546.html