Selenium Python 中的 Web 元素方法
Selenium 是一个强大的 Web 浏览器自动化和测试工具。我们使用 Selenium 编写脚本,它控制 Web 浏览器并执行特定操作。
安装 Selenium 和 Chrome WebDriver
要安装 Selenium,我们使用以下命令。
#Python 3.x
pip install selenium
ChromeDriver 是 Selenium WebDriver 用来与 Chrome 交互的另一个可执行文件。如果我们想在 Chrome 网络浏览器上自动执行任务,我们还需要安装 ChromeDriver。
根据 Chrome 浏览器的版本,我们需要为其选择兼容的驱动程序。以下是安装和配置 Chrome 驱动程序的步骤:
- 点击这个链接。根据你的 Chrome 浏览器版本和操作系统类型下载 Chrome 驱动程序。
- 如果要查找 Chrome 浏览器的版本,点击 Chrome 右上角的三个点,点击帮助,选择关于谷歌浏览器。你可以在 about 部分查看 Chrome 版本。
- 解压 zip 文件并运行 Chrome 驱动程序。
Selenium Python 中的 Web 元素方法
Web 元素是网站上的 HTML 元素。它可以是文本字段、按钮、滚动条等。
这是我们想要与之交互的东西,比如执行单击、填充文本字段等。一旦我们在 Python 中获得了一个 Web 元素,我们就可以对 Selenium 提供的该元素应用许多方法。
例如,我们在 HTML 中有以下 web 元素。
<input type="text" name="email" id="email_id" />
我们使用以下代码片段通过其 name
定位网络元素。
element_tf = driver.find_element_by_name("email")
或者,如果我们通过它的 id
定位它,我们将使用此方法。
element_tf = driver.find_element_by_id("email_id")
得到元素后,我们可以对它应用很多方法。一些广泛使用的方法及其描述如下。
元素法 | 描述 |
---|---|
click() |
单击任何元素。 |
clear() |
清除文本字段中的任何文本。 |
send_keys() |
在文本字段中输入文本。 |
text |
获取当前元素的文本。 |
screenshot() |
截取当前元素的屏幕截图并将其保存为 PNG 文件。 |
submit() |
在我们完成输入详细信息后提交表单的数据。 |
location |
获取当前元素的位置。 |
size |
返回元素的大小。 |
tag_name |
返回当前元素的标签名称。 |
is_selected() |
返回一个布尔值,指示元素是否被选中。 |
is_displayed() |
返回一个布尔值,指示元素是否在屏幕上对用户可见 |
get_property() |
返回元素的属性,如锚文本的 text_length 属性。 |
get_attribute() |
返回元素的属性,例如锚标记的 href 属性。 |
演示 Web 元素方法的代码
我们在下面的代码中使用了上面的一些方法。我们使用 find_view_by_name()
方法通过名称获取 email
和 password
文本字段以及登录按钮。
我们使用 send_keys()
方法输入了虚拟电子邮件和密码,并使用 clear()
方法清除了 password
字段。我们使用 text
、location
和 tag_name
方法提取了登录按钮的文本、位置和标签名称。
我们已经使用 is_selected()
和 is_displayed()
方法检查了登录按钮是否被选中和显示。最后,我们使用 click()
方法单击了登录按钮。
# Python 3.x
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Chrome(r"E:\download\chromedriver.exe")
driver.maximize_window()
driver.get("https://discpersonalitytesting.com/login-here/")
email = "myemail@email.com"
password = "mypassword1@23"
email_textfield = driver.find_element_by_name("email")
password_textfield = driver.find_element_by_name("password")
login_button = driver.find_element_by_name("LoginDAPLoginForm")
email_textfield.send_keys(email)
time.sleep(2)
password_textfield.send_keys(password)
time.sleep(3)
password_textfield.clear()
password_textfield.send_keys(password)
time.sleep(2)
print(login_button.text)
print(login_button.location)
print(login_button.is_selected())
print(login_button.is_displayed())
print(login_button.tag_name)
login_button.click()
输出:
Login
{'x': 251, 'y': 499}
False
True
button
I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.
LinkedIn