我正在使用 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/