selenium定位元素方法

1、通过id定位元素

写法1:

element = driver.find_element_by_id("kw")

写法2:

from selenium.webdriver.common.by import By

element = driver.find_element(by=By.ID, value="kw")

Tips: by=By.ID表示以id的方式定位web元素,下面的例子有类似的写法以此类推

2、通过class定位元素

写法1:

cheeses = driver.find_elements_by_class_name("cheese")

Tips:注意,这里返回的是一个包含web元素的列表,下同

写法2:

from selenium.webdriver.common.by import By

cheeses = driver.find_elements(By.CLASS_NAME, "cheese")

3、通过name定位元素

写法1:

cheese = driver.find_element_by_name("cheese")

写法2:

from selenium.webdriver.common.by import By

cheese = driver.find_element(By.NAME, "cheese")

4、通过tag(html标签)定位元素

写法1:

如果iframe这个tag在本html中是唯一的,可以根据iframe这个tag名来找到该元素

frame = driver.find_element_by_tag_name("iframe")

写法2:

from selenium.webdriver.common.by import By

frame = driver.find_element(By.TAG_NAME, "iframe")

注意,通过title标签名获取title元素,打印的文本值为空:

ele2=driver.find_element_by_tag_name('title')

print(ele2.text)

5、获取页面中title值

Title是一个特殊的元素,标签内的文本表示页面的标题,

可以通过driver.title属性获取页面标题

6、通过超文本连接(link)来定位元素

写法1:

ele = driver.find_element_by_link_text("转到百度")

写法2:

from selenium.webdriver.common.by import By

ele = driver.find_element(By.LINK_TEXT, "转到百度")

7、通过partial_link定位

当全称很长时,使用模糊匹配

如百度首页,点击hao123时:

driver.find_element_by_partial_link_text('ao123').click()

8、css定位方法

https://www.cnblogs.com/aiyumo/p/12576150.html

9、xpath定位方法

https://www.cnblogs.com/aiyumo/p/12576380.html

总结:有时候通过上面的方法定位不到元素,只能根据上层元素去定位

注意:现在很多页面加载后(也加载javascript前端代码), 由前端代码动态改变界面的内容,比如从后端获取一些数据后,再动态改变界面的内容。尤其是很多采用了框架像   angular, react, vue这些都会这样做,这样会导致一个问题,操作后再去操作之前定位的元素,会报错,每次都要重新获取元素,使元素一直都是最新的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值