python - 单击一个按钮以在 python selenium 中显示一个文本框
问题描述
我正在尝试单击一个取消隐藏另一个文本框的按钮。单击按钮将脚本从
<span id="incident.u_brand_edit" style="display: none;">
至
<span id="incident.u_brand_edit" style>
以下是按钮 HTML
<button class="btn btn-default btn-ref" type="button" aria-labelledby="incident.u_brand_title_text"
data-target="#incident\.u_brand" title="" tabindex="0" id="incident.u_brand_unlock"
data-type="glide_list_unlock" data-ref="incident.u_brand" data-auto-close="false"
data-placement="auto" style="margin-right: 5px;" list-read-only="false"
data-original-title="Unlock Brand"><span class="icon icon-locked" aria-hidden="true"></span></button>
我正在尝试使用以下代码来实现这一点
driver.find_element_by_id("incident.u_brand_unlock").click()
也试过这个
driver.find_element_by_id("incident.u_brand_unlock").send_keys("\n")
上面的代码专注于按钮,但它没有点击,文本框也没有隐藏以执行进一步的操作。
解决方案
要单击您需要诱导WebDriverWait的元素element_to_be_clickable()
,您可以使用以下任一Locator Strategies:
使用
CSS_SELECTOR
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.btn.btn-default.btn-ref[id$='u_brand_unlock'][data-original-title='Unlock Brand']>span"))).click()
使用
XPATH
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@class='btn btn-default btn-ref' and contains(@id, 'u_brand_unlock')][@data-original-title='Unlock Brand']/span"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
推荐阅读
- vuejs2 - Vuelidate 日期输入字段
- git - Git 算法规范
- c# - C# 程序存储多个学生记录,包括姓名、1-5 年级和平均成绩
- python-3.x - 如何从 Python 运行 Java
- ios - 滚动视图内的表格视图:在滚动时展开表格视图并在其上方隐藏视图
- hyperledger-fabric - 指定的查询不存在
- python - python 版本管理:总是在控制台中生成 python 2.7
- c# - 如何在 ASP.NET Core 2.1 中使用角色?
- javascript - 带有 WeakMap 或 WeakSet 的 Javascript Flyweight
- python - Django Restframework _ 自定义身份验证