Selenium 的 Python 模块旨在提供自动化测试过程。 Selenium Python 绑定包括一个用于编写 Selenium WebDriver 功能/验收测试的简单 API。
拥有移动能力并没有多大好处。 我们想要与页面交互,或者更准确地说,与组成页面的 HTML 片段交互。
本文将解释如何使用 Selenium 的 getAttribute()
方法。
Selenium Python 中的 getAttribute() 函数
getAttribute() 方法可以检索元素属性,例如锚标记的 href 属性。 该函数最初将尝试返回指定属性的值。
如果不存在这样的属性,则返回具有相同名称的属性值。 但是,如果元素中不存在属性,则不会返回任何内容。
什么是属性
HTML 中的属性定义元素的属性。 属性由名称-值对组成,这意味着每个属性都有一个值和一个名称。
它们的值用双引号括起来,并在开始标记中提供。 HTML 属性包括以下内容:
< a target="_blank" href="#" class="btn" >
<img src="#" class="image" alt="myImage" >
< input style="height:50px;" class="form-control" type="email" placeholder="Enter email" name="emailAddress" id="emailAddress" >
< button οnclick="#" class="btn" value="" >Login< /button >
从上面的例子来看,HTML 标签有多种属性和值。 例如,输入标签具有许多属性,例如类、样式、占位符、类型、名称和id。
每个属性都有一个用双引号引起来的数字。 现在我们了解了属性对于 HTML Web 元素的含义或它的显示方式,让我们检查一下 getAttributes()
方法为何有用。
Selenium Python 中 getAttribute() 函数的优点
考虑这样一种情况,我们必须仔细检查输入字段上的占位符内容、图片源和字段大小。 getAttribute()
方法解决了这种情况下的问题。
要获取属性的值,请找到保存该属性的 Web 元素并使用 getAttribute()
方法。
让我们通过一个实际示例来讨论该方法的语法,如下所示。
# python
GetElem.get_attribute("href")
从上面的语法可以看出,我们正在尝试获取 href 属性。 现在,我们已经了解了使用 getAttribute() 方法的基本语法,现在让我们看一下使用 getAttribute() 方法获取值的工作示例。
为了开发基本的测试脚本,我们将使用一个虚拟网站。 不用再犹豫不决了,让我们在继续讨论代码之前先看看用例:
- 我们将首先访问虚拟站点。
- 在主页前端,我们将获得链接的 href 属性。
- 我们还将获得图像的 src 属性。
现在,让我们看看这个用例的代码。
示例代码:
# python
from selenium import webdriver
chromeDriver = webdriver.Chrome()
chromeDriver.get("https://www.inventicosolutions.com/")
getElemByLink = chromeDriver.find_element_by_link_text("About Us")
print(getElemByLink.get_attribute('href'))
getElemByClass = chromeDriver.find_element_by_xpath("/html/body/main/div/div[1]/section[1]/div/div/div/div[7]/div/img")
print(getElemByClass.get_attribute('src'))
输出:
从上面的示例中可以看出,我们可以使用 getAttribute()
方法从 HTML 标记中获取任何属性。 这种方法可以帮助我们进行网页抓取,从网站上获取特定数据,例如链接和图像。