python Selenium 元素定位

Selenium常用的定位元素的方式

id      

find_element_by_id()

name

find_elemnent_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_by_partial_link_text()

xpath

find_element_by_xpath()

css selector

find_element_by_css_selector()


一、以下总结了5种js定位的方法
除了id是定位到的是单个element元素对象,其它的都是elements返回的是list对象
1.通过id获取
document.getElementById(“id”)
2.通过name获取

 document.getElementsByName(“Name”)
返回的是list
3.通过标签名选取元素
document.getElementsByTagName(“tag”)
4.通过CLASS类选取元素
document.getElementsByClassName(“class”)
兼容性:IE8及其以下版本的浏览器未实现getElementsByClassName方法
5.通过CSS选择器选取元素
document.querySelectorAll(“css selector")
兼容性:IE8及其以下版本的浏览器只支持CSS2标准的选择器语法




Class 带空格的复合类定位

from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://mail.163.com')
driver.find_element_by_id('lbNormal').click()
driver.switch_to.frame('x-URS-iframe') #选择Frame
#带空格的复合类定位元素
""""
class,复合类定位时可用css 和 class_name的方式定位
class_name取其中一个唯一类名定位即可,如果不唯一同样可以用elements的方式索引获得需要定位的元素
查看类名的唯一性可在元素中直接搜索
"""
#1.直接用class=‘j-inputtext dlemail’css定位
driver.find_element_by_css_selector("[class='j-inputtext dlemail']").send_keys('qq')
#2.elements查找的方式定位
element_username = driver.find_elements_by_css_selector('.j-inputtext')
element_username[0].send_keys('123') #此处的index索引从0开始,可以从页面查找的方式找出我们需要的元素为第几个
#class_name不唯一时定位元素,elements 索引
driver.find_elements_by_class_name('j-inputtext')[0].send_keys("456")
username_input = driver.find_element_by_css_selector("[class='j-inputtext dlemail']").get_attribute("value") #获取输入的文本内容
print(username_input)
js="return document.getElementsByName(\"email\")[0].value;" #括号中的引号转义字符
username_input = driver.execute_script(js) #执行js脚本获取元素属性




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值