python - 当我使用 selenium/Python 的 switch_to.window 时,我遇到了 InvalidArgumentException

标签 python selenium

我看过很多关于如何使用 selenium switch_to.window 的示例脚本

这是一个关于我所学到的示例脚本,根本不起作用:

    from selenium import webdriver
    from pprint import pprint
    
    browser = webdriver.Firefox()
    
    
    script="""
        myWindow = window.open("", "ChildWindow", "width=200,height=100");
    """
    browser.execute_script(script)
    
    wHandles = browser.window_handles
    pprint(wHandles)
    
    handle = wHandles[1]
    print(handle, type(handle))
    
    browser.switch_to.window(handle)

我收到了错误消息:

InvalidArgumentException: Expected "handle" to be a string, got [object Undefined] undefined

显然我厌倦了具有相同结果的普通网页。

有人有同样的问题吗?

最佳答案

忘记了 webdriver chrome/firefox - 最好使用 webdriver_manager,它可以使用您的 python 版本管理最新的浏览器 有关 webdriver_manager 的更多信息可以找到 here

pip install webdriver_manager

这是完美的代码

from webdriver_manager.firefox import GeckoDriverManager
from selenium import webdriver

browser = webdriver.Firefox(executable_path=GeckoDriverManager().install())

script = """
        myWindow = window.open("", "ChildWindow", "width=200,height=100");
    """
browser.execute_script(script)

wHandles = browser.window_handles
print(wHandles)

handle = wHandles[1]
print(handle, type(handle))

browser.switch_to.window(handle)

browser.quit()

关于python - 当我使用 selenium/Python 的 switch_to.window 时,我遇到了 InvalidArgumentException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63949719/

相关文章:

python - 按键对列表进行排序

c# - 如何检测 Selenium 中上一页/下一页的可用性?

java - 使用多页面方法(页面对象)进行测试 - Selenium Webdriver

python - Headless_ie_driver 启动 Internet Explorer 时出现意外错误。 IELaunchURL() 返回 HRESULT 80070012 ('There are no more files.' )

python - 基于最小/最大值的 Numpy 动态数组切片

python - 对角蛇填充数组

python - 多个集合并集以及列表理解

python - 为 Bitnami Django Stack 安装模块

python - 如何让selenium与新页面的新HTML元素交互

c# - 想要在 Assert.AreEqual() 中添加一个新行(\n) 元素