如何解决如何用selenium和python填充javascript文本框没有send_keys
我想在字段中输入一个值
我通过以下方式找到元素
let defaultVal = options().filter(
(optionChoice) => optionChoice.label === props.choice
);
我这样做是为了显示文本,然后单击:
driver.find_element_by_xpath('//*[@id="cell--gE-Ez1qtyIA"]')
到目前为止还不错,但是当我想向该字段发送值时使用了以下代码:
driver.find_element_by_xpath('//*[@id="cell--gE-Ez1qtyIA"]').click()
driver.find_element_by_xpath('//*[@id="cell--gE-Ez1qtyIA"]').text
什么也没有发生,并且字段值保持不变
解决方法
由于我们不知道您尝试访问的文本框的性质,因此您可能会遇到这种情况。 send_keys()
适用于您使用的所有文本框。查找以下要点,然后尝试将其应用于元素:
- 该元素未正确提取,请尝试使用其他定位器,例如id,name,css_selector。
- 该元素尚未准备就绪,请进行明确的等待,以检查该元素的存在和可见性。
示例代码可以使用显式等待:
wait = WebDriverWait(driver,10)
element = wait.until(EC.presence_of_all_elements_located(("xpath","//*[@id='cell--gE-Ez1qtyIA']")))
element.send_keys("test")
,
尝试使用javascriptexecutor
代替sendkeys
WebDriver driver = new ChromeDriver();
JavascriptExecutor je = (JavascriptExecutor)driver;
je.executeScript("document.getElementById('IDofElement').setAttribute('value','your value here')");
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。