我需要将文本发送到描述文本区域。有一些预定义的文本,单击后会被清除。我尝试在 sendkeys 之前使用 clear() 或 click() 但没有任何效果正常。它将向那里发送文本,但它仍然是灰色的,并且保存页面后出现错误,说明中没有文本...我可以使用其他东西代替发送键吗?谢谢
文本区域看起来像:
<textarea id="manage_description" class="eTextArea" name="e.description" cols="" rows="" onfocus="clearDescHint(this);" onblur="resetDescHint(this);" style="color: grey;"></textarea>
发送键不起作用
self.driver.find_element_by_id('manage_description').send_keys("TEST")
正如你提到的send_keys("TEST")
不起作用,有几种选择可以发送character sequence
如下所述的各个字段:
-
Use Keys.NUMPAD3
[模拟send_keys("3")
]:
login.send_keys(Keys.NUMPAD3)
-
Use JavascriptExecutor
with getElementById
:
self.driver.execute_script("document.getElementById('login_email').value='12345'")
-
Use JavascriptExecutor
with getElementsById
:
self.driver.execute_script("document.getElementsById('login_password')[0].value='password'")
正如您提到的,现在谈谈您的具体问题I tried to use clear() or click() before sendkeys but nothing works correctly
,所以我们将寻求帮助javascript
to click()
在文本区域上清除predefined text
然后使用send_keys
按如下方式填充文本字段:
self.driver.execute_script("document.getElementById('manage_description').click()")
self.driver.find_element_by_id('manage_description').send_keys("TEST")
Update :
正如您提到的,有时它起作用,有时不起作用,所以我建议如下:
- Induce
ExplicitWait
for textarea
可点击。
- Use
javascript
发送text
内textarea
too.
-
您的代码将如下所示:
my_string = "TEST";
elem = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, "manage_description")))
self.driver.execute_script("document.getElementById('manage_description').click()")
self.driver.execute_script("arguments[0].setAttribute('value', '" + my_string +"')", elem);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)