【问题标题】:'Driver' object has no attribute 'window_handles'“驱动程序”对象没有属性“window_handles”
【发布时间】:2020-12-01 06:10:14
【问题描述】:

我有一个场景,单击链接会打开一个新选项卡,并且要在新选项卡上执行下一步操作。我正在使用以下代码 sn -p 来实现相同的效果(额外的打印语句只是为了验证每一步的结果):

    print("Switch to window tests - a")
    window_before = self.driver.window_handles[0]
    print("Current Window Handle - 1",self.driver.current_window_handle)
    print("Current Window Handle - 2",self.driver.window_handles[0])
    print(window_before)

    self.view_FormID = WebDriverWait(self.driver.instance, 10).until(
        EC.visibility_of_element_located((
            By.XPATH, '//*[@id="find-form"]/div[2]/div[1]/div[2]/a')))
    self.view_FormID.click()
    print("view_FormID link clicked")

    print("Switch to window tests - b")
    window_after = self.driver.window_handles[1]
    print("Current Window Handle - 1", self.driver.current_window_handle)
    print("Current Window Handle - 2", self.driver.window_handles[1])
    self.driver.switch_to.window(window_after)

运行上述代码抛出错误:“'Driver' object has no attribute 'window_handles'”

我在任何论坛上都找不到相关的解决方案。 有人可以看看我可能缺少什么吗?

非常感谢!

PS:上面的代码 sn-p 是我 POM 中页面对象的一部分; FWIW,我无法在这里引用任何 webdriver 函数 - 所以我想问题在于应该在页面对象中调用 webdriver 对象的方式,我无法弄清楚! 我已经花了大约 2 天的时间试图弄清楚 - 所以非常感谢任何帮助:)

【问题讨论】:

    标签: python selenium selenium-webdriver attributeerror window-handles


    【解决方案1】:

    winHandls=driver.window_handles

    driver.switch_to.window(winHandls[index])

    希望这对你有用。

    【讨论】:

    • 感谢您的浏览和回复,Aayush!您建议的改进是首先显式初始化窗口句柄,然后通过索引使用它(我想我直接跳到第二部分)。不幸的是,我仍然遇到同样的错误:|还有什么想法吗?
    • 我在原始帖子中添加了一个 PS - 以防万一
    猜你喜欢
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-27
    • 1970-01-01
    相关资源
    最近更新 更多