当前位置: 首页 > 知识库问答 >
问题:

页面刷新后找不到元素-Selenium

魏鸿哲
2023-03-14

我想运行一个selenium测试,当单击旧页面中的按钮时,它是否导航到新页面。然后我想测试当新页面中的按钮被点击时,它是否导航回旧页面。

当我单击第一页上的按钮并检查新页面上的按钮元素是否出现时,测试工作正常。但是当我使用selenium点击第二页上的button元素,检查第一页上的button元素是否已经出现时,它没有找到第一页上的button元素,尽管我第一次使用相同的button元素去第二页,并且可以看到第一页被加载。我尝试使用以下等待语句:

 waitForPageToLoad()
 waitForTextPresent("", "text on first page")
 waitForElementPresent("" , //path to first button element)
 WebElement element = (new WebDriverWait(driver,      10)).until(ExpectedConditions.elementToBeClickable(By.xpath("path to first button elment")));

尽管在首次初始化页面时发现了相同的元素,但上述wait语句都不起作用。

共有1个答案

阮桐
2023-03-14

意识到第二次刷新第一个页面时,我必须首先执行driver.switchTo().frame(driver.findElement(by.xpath(“iframe的路径”)),因为应用程序在iframe中,所以第二次无法找到元素,除非我首先切换到iframe中。

 类似资料:
  • 问题内容: 我有一个应用程序,它使用一个ng-view和多个控制器和视图。如果我浏览根目录,例如:www.domain.com,则一切正常。除非我按Ctrl +R(刷新),否则会显示404错误页面未找到。例如:刷新此页面给我错误。http://domain.com/item/1/。 但是,如果我使用hashbang访问页面,则它可以工作。例如:http://domain.com/#!/item/1

  • 我是新的编码,我有以下问题,而自动与硒使用Java: 我正在测试SaaS解决方案,需要刷新页面,直到某个项目出现在我的收件箱中。我不能简单地使用findelement语句,因为该项只在一段时间后出现,并且只在页面刷新时出现。此外,所有收件箱项目在标题中都有一个唯一的序列号。我将这个唯一的数字保存为字符串变量,我想使用这个字符串变量来查看在刷新页面几次后收件箱项目是否出现。 查找唯一字符串的代码:

  • 我对在Selenium中使用python还很陌生。

  • 问题内容: 我有一个文件,其中我在页面顶部显示外部页面(使用iframe),其他部分是写在文件中的html代码的输出。 HTML代码如下所示: 现在,我想以编程方式刷新页面而不刷新。 我的问题是我可以不刷新页面就刷新页面吗? 答案/提示将不胜感激。 问题答案: 该嵌在主HMTL页面(或在JSP)。因此,如果刷新页面,则肯定会再次加载iframe。 为了避免这种情况,我可以考虑以下两种选择: 使用A

  • 我正在尝试用Selenium WebDriver、Java、Junit和Cucumber BDD来自动化一个航空公司的web应用程序。我能够创建一个简单的场景,比如选择一个带有出发日期的单程航班,然后选择一个座位,然后继续到付款页面。我能够写出所有的测试步骤,直到到达付款页面。Selenium成功地对所有页面中的所有元素执行了操作,但对支付页面中的任何元素执行了操作,却不成功。我尝试了隐式wait

  • 我尝试了这些方法,甚至放置等待,但仍然没有找到元素: