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

如果页面异步更改其内容(不重新加载页面),如何使WebDriverWait?

咸昀
2023-03-14
    // first Wait - is to wait before page starts changing is content by removing search google icon
            new WebDriverWait(driver, 30).until(ExpectedConditions.invisibilityOf(searchInputFieldIcon));
    //second Wait  - i'm waiting new hyperlink to appear (this hyperlink appears in search results after the whole page is asynchronically reloaded without page reloading)            
            new WebDriverWait(driver,30)
        .until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//a[@href='https://cloud.google.com/products/calculator']")));

关键是,在元素出现之前,Wait不会等待30秒。代码只是抛出一个异常:

    org.openqa.selenium.NoSuchElementException:
 no such element: Unable to locate element: {"method":"xpath","selector":"//a[@href='https:`//cloud.google.com/products/calculator']"}`

任何帮助都将不胜感激!

共有1个答案

海典
2023-03-14

请查看附件截图。这里的Href链接与您在代码中使用的不同。

您可以使用下面的代码

wait.until(expectedConditions.visibilityOfElementLocated(By.linkText("Google Cloud Platform Pricing ")));
 类似资料:
  • 问题内容: 我从数据库获取数据并将其显示在div中…我要做的是单击链接时应更改div的内容 一种选择是通过URL将参数传递给自身并重新加载页面… 我需要这样做而 无需重新加载\刷新 … 目的是当我单击任何链接时,div和php变量的内容无需刷新即可更新....这样 用户可以看到新数据 ,然后如果执行某些查询,它将在新变量上 ps我知道它将需要一些AJAX,但我不知道AJAX ..所以请以我可以学习

  • 我有一个链接。当用户单击此链接时,页面将被重新加载。我是这样做的。。。。。。 html JS 在控制器中,我使用了javascript,这对我来说似乎很糟糕。我怎么能用angularjs做

  • 问题内容: 我有一个按钮()。单击后,页面将重新加载。由于我有一些在页面加载时调用的jQuery 函数,因此导致这些元素再次被隐藏。我如何使按钮什么也不做,所以我仍然可以添加单击按钮但不重新加载页面时发生的某些操作。 问题答案: 不需要js或jquery。要停止页面重新加载,只需将按钮类型指定为“按钮”即可。如果您未指定按钮类型,浏览器会将其设置为“重置”或“提交”,从而导致页面重新加载。

  • 问题内容: 转到任何GitHub 页面,然后单击任何目录/文件,并观察URL的更改方式,但仅更新页面的一部分。没有整个页面重新加载。 我如何使用jQuery做类似的事情? 这对大多数浏览器都有效吗(我使用的是Chrome)? 问题答案: 他们使用历史记录API,或者专门使用。 您可以使用它,不需要jQuery,但是有一些插件,例如history.js。 这适用于大多数浏览器,即Chrome,Saf

  • 我正在使用react Redux实现两种不同类型用户登录。这是我的登录方法: 对于第一种类型的用户,我从后端返回:令牌、电子邮件、id、姓氏。 对于第二种类型的用户,我从后端返回:token、email、id、type。 我做了一些第二类用户无法访问的安全路由。因此,如果返回变量,我将为该用户定义特定的路由。 如果返回变量,它将正确显示链接和redux存储中的所有内容。但是,如果我重新加载页面,那

  • 在页面加载时,我运行这个函数将长引用文章隐藏到可点击的链接中,以防止在我的站点上出现大量评论: 问题是,当我通过Ajax/load重新加载“.comments”时,上面的函数不再起作用: 不确定为什么它不起作用,因为函数是在加载函数的已完成的回调部分中调用的?