“驱动程序”对象没有属性“ window_handles”

时间:2020-08-11 14:38:30

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

我有一种情况,单击链接会打开一个新标签,然后在新标签上执行下一步操作。我正在使用以下代码片段来实现相同的目的(额外的打印语句仅用于验证每个步骤的结果):

    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'对象没有属性'window_handles'”

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

非常感谢!

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

1 个答案:

答案 0 :(得分:1)

winHandls = driver.window_handles

driver.switch_to.window(winHandls [index])

希望这对您有用。