python - Python Selenium - 有什么方法可以在这个文本框中发送文本?
问题描述
我想选择一个文本框来输入一些数据,问题是我不知道如何获取它的元素:
这就是我检查它时得到的结果:
<input class=" input" maxlength="255" type="text" aria-describedby="" placeholder="" id="8624:0" data-aura-rendered-by="8628:0" data-interactive-lib-uid="28">
问题是,这基本上是为了填写表格,而 id、rendered by 和 uid 数字会发生变化。有什么我可以尝试的吗?
解决方案
要将字符序列发送到<input>
您需要诱导WebDriverWait的元素element_to_be_clickable()
,您可以使用以下任一Locator Strategies:
使用
CSS_SELECTOR
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.input[type='text'][data-aura-rendered-by][aria-describedby]"))).send_keys("Smece")
使用
XPATH
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@class=' input' and @type='text'][@data-aura-rendered-by and @aria-describedby]"))).send_keys("Smece")
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
推荐阅读
- reactjs - Webpack错误1又一个'无法读取属性'
- javascript - HTML 按钮 - 按住按钮时将重复该操作
- c++ - 在 C++ 二叉搜索树中实现旋转绝对是煎熬
- r - R Shiny 地图搜索输入框
- node.js - Expressjs 路线与 graphql-yoga
- google-sheets - 在 Google 表格的下拉列表中选择一个选项后,水平自动填充一行
- regex - 正则表达式 - 获取 2 个字符串之间的字符串
- java - 如何在不使用集合或哈希集但使用给定哈希集表的情况下获得两个集合的并集?
- amazon-web-services - 无法从笔记本电脑访问公共子网中的极光集群
- ubuntu-16.04 - cloud-config 似乎没有运行脚本-per-once、runcmd 或 per-boot 模块