使用Selenium和Python执行浏览器UI操作

使用Selenium和Python执行浏览器UI操作,python,google-chrome,selenium,Python,Google Chrome,Selenium,有人知道允许在Google Chrome web浏览器上执行快捷方式的API吗(例如CRTL+p,即打印;或CRTL+T,即打开新选项卡) 这个问题是因为Selenium似乎没有这样的能力,因为它的send_keys功能需要网页上的元素,而不是从浏览器对象执行操作。虽然我不能直接回答这个问题,但我想指出,Selenium可以使用XPath作为元素检索页面主体。然后,它可以使用“发送”键打开“打印”对话框: element = browser.find_element_by_xpath("//bo

有人知道允许在Google Chrome web浏览器上执行快捷方式的API吗(例如CRTL+p,即打印;或CRTL+T,即打开新选项卡)


这个问题是因为Selenium似乎没有这样的能力,因为它的send_keys功能需要网页上的元素,而不是从浏览器对象执行操作。

虽然我不能直接回答这个问题,但我想指出,Selenium可以使用XPath作为元素检索页面主体。然后,它可以使用“发送”键打开“打印”对话框:

element = browser.find_element_by_xpath("//body")
element.send_keys(Keys.CONTROL, 'p')

然而,这似乎只适用于Firefox,在使用ChromeDriver时没有任何作用。我尝试过隐式和显式等待,但没有掷骰子。

非常感谢您的努力。您知道如何在打印窗口上自动按return键来触发它吗?这是一种在webbrowser范围外模拟返回键盘按下的方法吗?嗯。我可以发誓我已经看到了一种方法来实现这一点,但是现在搜索我找不到它,我碰到了一些建议这是不可能的。至于你的第二个问题,我相信可以使用或类似的工具来设置,但这将是一个相当混乱的解决方案@Robert,只需按escape键即可关闭打印窗口:
浏览器。通过xpath(“//body”)查找元素。发送键(keys.escape)
。但首先,您应该切换到打印窗口,因此请提前使用:
browser.switch\u to\u window(browser.window\u句柄[-1])