首页 > 解决方案 > Selenium 重新加载到主页后没有第二次点击

问题描述

我在这里有一个测试用例:

我的页面左侧部分是手风琴菜单。当我执行单击父菜单时,它起作用了。并且网站右侧部分会显示“你没有权限”并返回首页。

当我第二次访问时,右侧部分将显示正常内容。所以我应该再次单击菜单,然后在我的测试代码中这样写。但它没有执行任何点击操作——只是将点击操作传递到下一步。所以我的测试失败并抛出错误。

我查看了由 selenium webdriver 控制的浏览器。页面重新加载到主页后,它显然被冻结了。

错误信息显示:

Test method AutomationTesting.cuteTest.CheckChocolate threw exception: 
OpenQA.Selenium.WebDriverTimeoutException: Timed out after 5 seconds ---> OpenQA.Selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@class='menuChocolate']/a"}

我的测试代码:(为什么一定要点击第二次是因为这个页面需要第二次来才能显示正常的UI)

  DessertsMenu.Click();

  WebDriverWait waitForMenu= new WebDriverWait(Driver, TimeSpan.FromSeconds(5));
  waitForMenu.Until(ExpectedConditions.ElementIsVisible(By.XPath("//*[@class='menuChocolate']/a"))).Click();
            
  DessertsMenu.Click();
  WebDriverWait waitAgain= new WebDriverWait(Driver, TimeSpan.FromSeconds(5));
  waitAgain.Until(ExpectedConditions.ElementIsVisible(By.XPath("//*[@class='menuChocolate']/a"))).Click();

我查看了由 selenium 控制的浏览器,它实际上是单击菜单。但我不知道为什么它没有再次点击。有什么我想念的吗?

标签: seleniumselenium-webdriver

解决方案


如果页面重新加载,我认为您将不得不再次找到父菜单。

如果即使在找到元素之后,您也无法单击父菜单,那么我建议您尝试使用JavaScriptExecutor. https://www.guru99.com/execute-javascript-selenium-webdriver.html


推荐阅读