问题描述
我想单击一个可键入的元素,然后通过按键模仿最终用户将要键入的内容。我不想给任何XPath然后使用sendkey或其他任何东西。
基本上是element.click()->按键操作,我敢肯定selenium对此没有选择,这就是我转向js的原因。有人知道这样的事情是否可能吗?
编辑:测试是在网页上完成的
可以做到吗?
解决方法
首先,您需要获取元素(使用XPath或CSS_Selector)。
例如,如果要复制/粘贴文本,可以使用CTRL +'c'然后CTRL +'v'来使用ActionChains
完成此操作
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get('http://example.com')
element = driver.find_element_by_xpath('the/xpath')
ActionChains(driver).move_to_element(element).click(element).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()
或者您可以使用ActionChains().send_keys()