from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
#打开浏览器
driver.get('D:/pythoncode/venv/one/myhtml1.html')
####
selenium八大单位元素定位方法
#1.通过id属性查找元素
driver.find_element_by_id('id1').send_keys('storm')
#2.通过name属性查找元素
driver.find_element_by_name('name1').send_keys('name1')
#3.通过class属性查找元素
driver.find_element_by_class_name('s_ipt').send_keys('selenium')
#4.通过tag属性查找元素
driver.find_element_by_tag_name('input').send_keys('input')
#5.通过链接文本内容查找元素
driver.find_element_by_link_text("I'm Storm").click()
#6.1.通过部分链接文本内容查找元素
driver.find_element_by_partial_link_text('Storm').click()
#7.通过xpath方法查找元素
driver.find_element_by_xpath('//*[@id="kw"]').send_keys('xpath')
#7.1.1xpath: `.`代表当前节点; '..'代表父节点
mytext = driver.find_element_by_xpath("//div[@id='C']/../..").text
#7.1.2xpath轴 parent 子找父
mytext1 = driver.find_element_by_xpath("//div[@id='C']/parent::div/parent::div").text
#7.2.1#通过父元素定位子元素,xpath轴 父找子
mytext = driver.find_element_by_xpath("//div[@id='B']/child::div").text
#7.3.1xpath轴 preceding-sibling 弟弟获取哥哥节点
mytext1 = driver.find_element_by_xpath("//div[@id='D']/preceding-sibling::div[1]").text
#5.3.2.xpath轴 following-sibling 哥哥获取弟弟节点
mytext1 = driver.find_element_by_xpath("//div[@id='D']/following-sibling::div[1]").text
#8.通过css定位页面元素
driver.find_element_by_css_selector("body > input").send_keys('css')
##其他定位方式:
#9.串联查找的方式
mytext = driver.find_element_by_id('B').find_element_by_tag_name('div').text
#10.直接传递locate type的方式只支持4种,id、name、xpath、css
driver.find_element('tagname', 'input').send_keys('input')
#11.通过引入common.by的包,可以完美支持前面讲过的八种方法
driver.find_element(By.TAG_NAME, 'input').send_keys('input')
###11.组元素定位方法
eles = driver.find_elements_by_tag_name('div')
print(eles[2].text)
#11.1组元素方法应用:打印列表中状态列的所有结果
eles = driver.find_elements_by_class_name('status')
for ele in eles:
if ele.text=='状态':
continue
else:
print(ele.text)
selenium元素定位方法
最新推荐文章于 2024-07-19 16:28:50 发布