硒 send_keys 格式化
selenium send_keys formatting
我想将文本填充到所选元素,它是一个聊天框,如下所示:
Hi,
It's me
我试过这样写代码:
element.send_keys("""
Hi,
It's me
"""")
问题是“嗨”无意间被发送到聊天室并在聊天框中留下了“是我”。有替代方案吗?
最简单的方法是在字符串中间添加一个“Enter”键。
import os
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--start-maximized")
chromedriver = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'chromedriver.exe')
chrome = webdriver.Chrome(chromedriver, options=chrome_options)
chrome.get("https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_textarea")
iframe = chrome.find_element_by_xpath('//*[@id="iframeResult"]')
chrome.switch_to.frame(iframe)
chrome.find_element_by_xpath('//*[@id="w3review"]').clear()
chrome.find_element_by_xpath('//*[@id="w3review"]').send_keys("Hello" + Keys.ENTER + "World")
但是,这很可能不适用于您的“聊天应用”。原因是“Enter”也用于发送消息。如果是这种情况,您需要使用动作链。这是一个如何完成的示例:
from selenium.webdriver.common.action_chains import ActionChains
action = ActionChains(chrome)
el = chrome.find_element_by_xpath('//*[@id="w3review"]')
action.move_to_element(el)\
.click(el)\
.send_keys("Hello")\
.key_down(Keys.SHIFT)\
.send_keys(Keys.ENTER)\
.key_up(Keys.SHIFT)\
.send_keys("World")\
.perform()
我想将文本填充到所选元素,它是一个聊天框,如下所示:
Hi,
It's me
我试过这样写代码:
element.send_keys("""
Hi,
It's me
"""")
问题是“嗨”无意间被发送到聊天室并在聊天框中留下了“是我”。有替代方案吗?
最简单的方法是在字符串中间添加一个“Enter”键。
import os
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--start-maximized")
chromedriver = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'chromedriver.exe')
chrome = webdriver.Chrome(chromedriver, options=chrome_options)
chrome.get("https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_textarea")
iframe = chrome.find_element_by_xpath('//*[@id="iframeResult"]')
chrome.switch_to.frame(iframe)
chrome.find_element_by_xpath('//*[@id="w3review"]').clear()
chrome.find_element_by_xpath('//*[@id="w3review"]').send_keys("Hello" + Keys.ENTER + "World")
但是,这很可能不适用于您的“聊天应用”。原因是“Enter”也用于发送消息。如果是这种情况,您需要使用动作链。这是一个如何完成的示例:
from selenium.webdriver.common.action_chains import ActionChains
action = ActionChains(chrome)
el = chrome.find_element_by_xpath('//*[@id="w3review"]')
action.move_to_element(el)\
.click(el)\
.send_keys("Hello")\
.key_down(Keys.SHIFT)\
.send_keys(Keys.ENTER)\
.key_up(Keys.SHIFT)\
.send_keys("World")\
.perform()