Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python和Selenium发送ESC键以关闭弹出窗口?_Python_Python 3.x_Selenium_Selenium Webdriver - Fatal编程技术网

如何使用Python和Selenium发送ESC键以关闭弹出窗口?

如何使用Python和Selenium发送ESC键以关闭弹出窗口?,python,python-3.x,selenium,selenium-webdriver,Python,Python 3.x,Selenium,Selenium Webdriver,如前所述,是否有方法发送全局ESC键以关闭弹出窗口(CSS模式窗口)?我尝试了以下操作,但没有成功: driver.find_element_by_tag_name('body').send_keys(Keys.ESCAPE) 我知道我可以使用xPath等,但问题是该站点有动态元素ID和类名。您不需要向元素发送键,您需要全局按它们(到浏览器) 你可以通过行动来做到这一点 from selenium import webdriver from selenium.webdriver.common.

如前所述,是否有方法发送全局
ESC
键以关闭弹出窗口(CSS模式窗口)?我尝试了以下操作,但没有成功:

driver.find_element_by_tag_name('body').send_keys(Keys.ESCAPE)

我知道我可以使用xPath等,但问题是该站点有动态元素ID和类名。

您不需要向元素发送键,您需要全局按它们(到浏览器)

你可以通过行动来做到这一点

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

webdriver.ActionChains(driver).send_keys(Keys.ESCAPE).perform()

您可以在文档中查看更多信息,也可以尝试此操作,它将返回到您以前使用的驱动程序

driver.back()

我在AppRobotic个人编辑器中编写Selenium Python脚本,并在Selenium操作之间插入其Windows宏功能

import win32com.client
x = win32com.client.Dispatch("AppRobotic.API")
from selenium import webdriver

x.Type("{ESCAPE}")

什么样的弹出窗口?警报,窗口还是框架?@ElRuso,看这是不同的。基于文档
driver.back()
在浏览器历史记录中向后退了一步,我不得不添加ActionChains的导入以使其正常工作,并且只使用
ActionChains(driver)。发送密钥(keys.ESCAPE)。在前面没有
webdriver
位的情况下执行()。在这里导入信息:您需要导入您要处理的第一件事情-在本例中,它是webdriver或ActionChains