如何使用 Python 和 Selenium 发送 ESC 键以关闭弹出窗口?
Posted
技术标签:
【中文标题】如何使用 Python 和 Selenium 发送 ESC 键以关闭弹出窗口?【英文标题】:How to send ESC key to close pop up window using Python and Selenium? 【发布时间】:2017-05-29 17:29:39 【问题描述】:如前所述,有没有办法发送全局ESC
键来关闭弹出窗口(CSS 模式窗口)?我尝试了以下但没有工作:
driver.find_element_by_tag_name('body').send_keys(Keys.ESCAPE)
我知道我可以使用 xPath 等,但问题是该站点具有动态 elementIds 和类名。
【问题讨论】:
什么样的弹出窗口?警报、窗口还是框架? @ElRuso Modal Div 相关,见Typing Enter/Return key using Python and Selenium? 【参考方案1】:您不需要向元素发送键,您需要全局按下它们(到浏览器)。
您可以通过操作来完成。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
webdriver.ActionChains(driver).send_keys(Keys.ESCAPE).perform()
您可以在Webdriver API - 7.2 Action Chains doc 中查看更多信息
【讨论】:
我必须添加 ActionChains 的导入才能使其正常工作,并且只使用了ActionChains(driver).send_keys(Keys.ESCAPE).perform()
而前面没有 webdriver
位。在此处导入信息:***.com/a/26669375/6163621
你需要先导入你要使用的东西——在这个例子中,它是 webdriver 或 ActionChains【参考方案2】:
也试试这个,它会回到你以前的驱动程序
driver.back()
【讨论】:
这是不同的。基于文档driver.back()
在浏览器历史记录中倒退了一步selenium-python.readthedocs.io/…【参考方案3】:
我在 AppRobotic Personal 编辑器中编写我的 Selenium Python 脚本,然后在 Selenium 操作之间插入它的 Windows 宏功能。
import win32com.client
x = win32com.client.Dispatch("AppRobotic.API")
from selenium import webdriver
x.Type("ESCAPE")
【讨论】:
以上是关于如何使用 Python 和 Selenium 发送 ESC 键以关闭弹出窗口?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Selenium 和 Python 在信用卡号字段中输入日期?
如何通过 Selenium WebDriver 和 Python 定位用户名和密码元素
python+selenium+unittest测试框架3-项目构建和发送邮件
python selenium自动发送的整段信息被分割多次迭代重复发送?