【问题标题】:selenium webdriver - unable to find the element when page is redirectedselenium webdriver - 重定向页面时无法找到元素
【发布时间】:2015-08-27 14:18:54
【问题描述】:

单击登录时我有应用程序,它重定向到另一个页面,我尝试在重定向页面上的元素完全加载后单击它,但仍然出现异常

org.openqa.selenium.NoSuchElementException:没有这样的元素

尝试使用 id、Css 单击元素,但遇到了同样的问题。

driver.findelement(By.id("abc")).click();

(在重定向之前。此点击功能会将页面重定向到不同的站点)

然后尝试点击重定向页面

driver.findElement(By.id("contentLink_1_HeaderStoreLogo_Content")).click();

然后找不到这样的元素。

【问题讨论】:

  • 您是否尝试在查找第二个元素之前添加等待?
  • 是的,尝试等待重定向页面加载
  • 试过 switch.frame 并且能够点击重定向页面上的元素。感谢 driver.switchTo().frame("framename");
  • 所以你回答了你的问题?如果是这样,请将其作为答案发布并接受,这样其他人就不会花时间研究答案。

标签: selenium-webdriver


【解决方案1】:

我也有同样的问题,下面的文章帮我解决了。 https://chercher.tech/python/windows-selenium-python

解决方案: 我已经使用 'current_window_handle' , 'window_handles' 来解决它,请按照以下步骤操作:

  • 使用 current_window_handle 方法,它会给你一个 GU
    ID(全局唯一标识符)。

    • parentWindow = driver.current_window_handle
  • 稍后当您单击按钮并重定向到新窗口时,请使用 current_window_handle 并将其存储在变量中

    • childWindow = driver.current_window_handle
  • 现在,收集所有 GU ID,以便从当前子窗口的 GU ID 中过滤父级。

    • allWindows = driver.window_handles

现在,我使用 for 循环遍历所有 GU ID 并过滤子 GU ID

for n in allWindows:
    if(parentWindow != n):
        driver.switch_to_window(n)
        break;

祝你好运!

【讨论】:

    猜你喜欢
    • 2014-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-13
    • 2015-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多