python硒作用链

时间:2019-02-19 13:58:17

标签: python selenium

这里需要有关linux python3中Web硒中“粘贴”操作的帮助。 可以使用search.send_keys(Keys.CONTROL+ "v")将本地test.txt中复制的内容成功粘贴到Web上下文中。

但是,当我尝试使用动作链来模拟鼠标“右键单击”和“粘贴”时,它失败了。该脚本在“右键单击”面板上挂起,提示未进行任何in the piucture“向下箭头”和“粘贴”操作的操作。 似乎我需要找到正确的“元素”来定位,然后执行“向下箭头”,然后“粘贴”。 任何想法都很感激。

def paste(self):
    file = 'test.txt'
    f = open(file,'r')
    c = clipboard.copy(f.read())
    sleep(3)
    actions = ActionChains(self.driver)
    element = self.driver.find_element_by_xpath("//input[@type='text'][@id='idtboxSensorSearch']")
    actions.move_to_element(element).perform()
    actions.context_click().perform()
    actions.send_keys(Keys.ARROW_DOWN).send_keys(Keys.ARROW_DOWN).send_keys(Keys.RETURN).perform()

1 个答案:

答案 0 :(得分:0)

右键菜单是操作系统 UI元素,它不受Selenium的控制-它根本无法与之交互。就像您尝试控制工具栏按钮或浏览器菜单一样,您无法使用Selenium来实现。
这就是ActionChains发生的事情-将这些事件发送到Web元素,而不是右键单击菜单-并且您看不到任何交互。

如果您确实想执行此操作-尽管ctrl-v足够了,但它确实可以执行此操作,您应该使用桌面应用程序自动化工具。 AutoIt和Java的robot软件包是免费的选择。