0


selenium新版元素定位方法、元素操作与基本API

一、selenium新版元素定位方法

注意:selenium新版元素定位需要导入方法By,使用By来调用元素定位方法
from selenium.webdriver.common.by import By

1、ID属性值定位

标签的 id属性具有唯一性,就像人的身份证,不存在根据一个id属性定位到多个标签的情况。假设有个iframe标签如下,其 id 属性值为"actionFrame"。

<iframe name="actionFrame" id="actionFrame" border="0" style="display:none;">

我们可以通过 id 属性值定位到这个标签。由于 id 的唯一性,我们可以不用管其他的标签的内容。

from selenium import webdriver
from selenium.webdriver.common.by import By

url = 'https://www.chinagwy.org/html/stzx/202301/7_557715.html'
driver = webdriver.Chrome()  #打开浏览器
driver.get(url)   # 打开网址

driver.find_element(By.ID, "actionFrame")

2、name 属性值定位

name 指定标签的名称,在页面中可以不唯一。假设有个 input 标签如下,其 name 属性值为"major"。

<input id="major" value="专业" name="major">

我们可以使用driver.find_element(By.NAME, 'major')来定位这个标签。

from selenium import webdriver
from selenium.webdriver.common.by import By

url = 'https://www.chinagwy.org/html/stzx/202301/7_557715.html'
driver = webdriver.Chrome()  #打开浏览器
driver.get(url)   # 打开网址

driver.find_element(By.NAME, 'major')

注意:用 name 方式定位需要保证 name 属性值唯一,否则定位会失败,即定位到的元素不一定是你想要定位的元素。如果name 属性值不唯一,可以用driver.find_elements方式定位,找到所有与name 属性值对应的标签,得到的将是一个包含所有与name属性值对应的标签的列表。如:

from selenium import webdriver
from selenium.webdriver.common.by import By

url = 'https://www.baidu.com/index.php?tn=98010089_dg&ch=28'
driver = webdriver.Chrome()  #打开浏览器
driver.get(url)   # 打开网址
#找到name属性值为tj_settingicon的所有标签
xpath = driver.find_elements(By.NAME, 'tj_settingicon') 

type(xpath)  #返回结果的类型
len(xpath)  #列表长度

3、class name 属性值定位

class 属性值指定标签的类名,在页面中可以不唯一。假设有个 div 标签如下,其 class 属性值为"toolbar-search-container"。

<div class="toolbar-search-container">

我们可以使用 driver.find_element(By.CLASS_NAME, 'toolbar-search-container') 定位到 div 标签。同样,用 CLASS_NAME方式定位需要保证 class属性值唯一,否则定位会失败。

4、tag_name 定位

tag_name 定位即通过标签名定位。每个标签往往用来定义一类功能,所以通过 tag_name 来识别某个元素的成功率很低,每个页面一般都用很多相同的 tag 。假设有个 div 标签如下,其标签名即为div。

<div class="toolbar-search-container">

我们可以使用 driver.find_element(By.TAG_NAME, 'div ')定位到 div 标签。

前三种方式:ID属性值定位、name 属性值定位、class name 属性值定位,均是根据元素(标签)的属性值定位,而第四种tag_name 定位则是根据标签名定位。

5、xpath 定位

参考:selenium中元素定位——Xpath的高级用法_selenium xpath语法-CSDN博客


本文转载自: https://blog.csdn.net/qq_41041051/article/details/135180248
版权归原作者 lin9768 所有, 如有侵权,请联系我们删除。

“selenium新版元素定位方法、元素操作与基本API”的评论:

还没有评论