使用Python和Selenium按文本单击按钮
Selenium是一种工具,它提供 API 来自动化 Web 应用程序以帮助其测试。在本文中,我们讨论了使用Selenium Python API 绑定访问Selenium WebDrivers 以通过按钮中存在的文本单击按钮。在以下示例中,我们将借助 Chrome。使用的方法是find_element_by_link_text() ,它使用存在的文本抓取元素。如果没有具有给定文本属性的此类元素,则返回NoSuchElementException 。
安装:
确保您已使用Selenium安装
pip3 install Selenium
并为您的网络浏览器下载 WebDriver:
Chrome : https://chromedriver.chromium.org/downloads
Firefox : https://github.com/mozilla/geckodriver/releases
Safari : https://webkit.org/blog/6900/webdriver-support-in-safari-10/
一旦Selenium与所需的 WebDriver 一起安装,我们创建一个文件 script.py 并使用我们的代码编辑器编写下面的Python脚本,该脚本使用Selenium WebDriver 打开 geeksforgeeks 网站,并使用链接文本单击“登录”按钮。
句法:
driver.find_element_by_link_text("sample text")
循序渐进的方法:
- 导入所需的模块。
- 创建 webdriver 对象。
- 分配网址。
- 使用maximize_window()方法最大化浏览器窗口。然后使用sleep()方法等待 10 秒钟。
- 使用find_element_by_link_text()方法按文本单击按钮。
下面是实现。
Python3
# import module
from selenium import webdriver
import time
# Create the webdriver object. Here the
# chromedriver is present in the driver
# folder of the root directory.
driver = webdriver.Chrome(r"./driver/chromedriver")
# get https://www.geeksforgeeks.org/
driver.get("https://www.geeksforgeeks.org/")
# Maximize the window and let code stall
# for 10s to properly maximise the window.
driver.maximize_window()
time.sleep(10)
# Obtain button by link text and click.
button = driver.find_element_by_link_text("Sign In")
button.click()
输出:
首先,WebDriver 打开带有 geeksforgeeks 的窗口,将其最大化,然后等待 10 秒。然后单击“登录”按钮并打开注册面板。