python - 如何在 python 中处理 selenium web 驱动程序中单击“下载密钥”按钮?
问题描述
我不确定find_element_by_*
我应该使用下面的“检查元素”来单击下载按钮。我是硒的新手,仍在处理基础知识。
<a href="#" style="font-size:15px;" onclick="if(typeof jsfcljs == 'function'){jsfcljs(document.forms['activationpage3'],'activationpage3:j_id_id21,activationpage3:j_id_id21','');}return false">Download Key File</a>
解决方案
要click()
在带有文本的元素上作为下载密钥文件,因为它是一个<a>
节点,您必须为此诱导WebDriverWait并且element_to_be_clickable()
您可以使用以下任一 Locator Strategies:
使用
LINK_TEXT
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.LINK_TEXT, "Download Key File"))).click()
使用
PARTIAL_LINK_TEXT
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.PARTIAL_LINK_TEXT, "Download Key File"))).click()
使用
CSS_SELECTOR
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a[onclick*='activationpage3']"))).click()
使用
XPATH
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[contains(@onclick,'activationpage3') and contains(., 'Download Key File')]"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
推荐阅读
- c++ - 通过基类引用派生类后打印的错误值
- html - 试图将 hr 标签彼此靠近
- sql-server - SSDT 通函参考:复杂项目
- python - 如何在 OpenCV 中提取具有特定颜色的图像片段?
- java - 不支持的major.minor 52.0 版,带有用eclipse 构建的web 应用程序,服务器是tomcat 7
- sas - 根据日期计算移动总和/平均值
- python - DRF 嵌套序列化器将表转换为结构化 json
- javascript - Cookie 文件不会传递到其他页面
- c# - 在 C# 中寻找正确的对象表示法来表示 JSON 样式的数据
- python-3.x - python3:将列表列表转换为列表字典