【发布时间】:2019-01-10 00:49:15
【问题描述】:
尝试在 Python 中使用 Selenium 将值“100000”输入到 Web 表单中,但无论我如何尝试发送它,它始终无法正常工作。
对于我对术语缺乏了解,我深表歉意。我会尽力而为,但我是自学成才和新手。另外,我很抱歉,但我不能告诉你网站,否则我的雇主不会很高兴。
网页上的框会自动填充一个美元符号。我知道网络表单中的框需要一个货币格式的整数。 当我查看网页上的 html 元素时,它会提供以下信息
<input type="number" step="1" name="moneying" size="35" id="moneying"
class="moneying input currency error" value="" data-type="currency" data-
mandopt="mand" required="" pattern="[\$]?[0-9]+[\.]?[0-9]*" min="500"
onblur="validate(this);">
我试过了:
- 直接使用 send_keys 类,没有任何变化
- 在使用 send_keys 之前单击该框
- 在使用 send_keys 之前清除该框
- 等到可以在页面上找到元素,然后执行上述所有操作
- 将 send_keys 与 Keys.NUMPAD# 一起使用
- 在数字开头加$
- 在数字开头添加\$
- 使用 Firefox 驱动程序而不是 Chrome 驱动程序
- 输入值为 100000.00 和 100000
我的代码的当前版本:
from selenium import webdriver
driver = webdriver.Chrome('location on my pc')
try:
driver.get(r"relevant web page")
moneying_box_wait = WebDriverWait(driver,20).until(EC.presence_of_element_located((By.ID,"moneying")))
moneying_box = driver.find_element_by_id("moneying")
moneying_box.click()
moneying_box.clear()
moneying_box.send_keys("100000")
我希望它在框中输入 100000。盒子里什么都没有。
【问题讨论】:
-
如果您删除
try,您会看到什么错误? (如果有的话)如果你发送一个数字而不是一个字符串怎么办?send_keys(100000)除了这两件事之外,基本上不可能不看页面就知道问题可能是什么。一般来说,确保 Selenium 正在执行您自己手动执行的所有操作(和等待)。这听起来很明显,但往往是问题所在。 -
感谢您的建议。如果我输入数字而不是字符串,Send_keys 没有做任何不同的事情。 “尝试”是因为这只是一大段代码中的一小段。其余的代码都在工作,只是这一部分没有。
标签: python selenium xpath css-selectors webdriverwait