Python 和 Selenium - 当 send_keys() 带有换行符时避免提交表单

标签 python selenium sendkeys

我正在使用 Python 3 和 selenium。

让我们假设 var = "whatever\nelse"

我的问题是,当我使用 elem.send_keys(var) 时,它会在 “whatever” 之后发送表单(因为换行符)

如何将“whatever\nelse”替换为 whatever + SHIFT+ENTER + else?

或者有没有其他方法可以在不实际使用 javascript 或用换行键替换换行符的情况下输入换行符?

注意:elem是一个contenteditable div。

最佳答案

你有没有尝试过类似的东西:

ActionChains(driver).key_down(Keys.SHIFT).key_down(Keys.ENTER).key_up(Keys.SHIFT).key_up(Keys.ENTER).perform()

喜欢

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome()
driver.get('http://foo.bar')

inputtext = 'foo\nbar'
elem = driver.find_element_by_tag_name('div')
for part in inputtext.split('\n'):
    elem.send_keys(part)
    ActionChains(driver).key_down(Keys.SHIFT).key_down(Keys.ENTER).key_up(Keys.SHIFT).key_up(Keys.ENTER).perform()

ActionChains 将在按下 SHIFT + ENTER + key_up 后链接 key_down

像这样你执行你的SHIFT + ENTER,然后释放按钮这样你就不会在大写锁定中写入(因为SHIFT)

PS:这个例子添加了太多的新行(因为 inputtext.split('\n') 上的简单循环,但你明白了。

关于Python 和 Selenium - 当 send_keys() 带有换行符时避免提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45236253/

相关文章:

html - Jenkins 中的故障安全 html 报告

c# - Webdriver "sendkeys"方法没有正确输入密码

python - "Unsupported hash type"错误 w/Python 2.6.5 和 django 框架

python - xpath:元素中的元素

python - 如何关闭 Python/Selenium 中的麦克风/摄像头弹出窗口?

C# SendKeys.发送

c# - 如何控制 Datagridview 中的 SendKeys.Send {"tab"} 属性?

java - php相当于jython?

python - 为什么我不能通过 Python 中的键访问列表?

python - 格式化复数