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

webdriver没有第二次按类名定位元素

贺兴平
2023-03-14

这是单击按钮的代码:

var nextBTN = testhelper.FireFoxBrowser.FindElement(By.ClassName("trigger-next-button"));
nextBTN.Click();

共有1个答案

苍嘉澍
2023-03-14

根据添加睡眠的工作原理,这听起来好像您的代码比WebDriver更快了。您需要执行某种同步,以使它们彼此保持同步。我会在这里使用一个陈旧性检查,如下所示:

WebDriverWait wait = new WebDriverWait(driver, 60); // 60 is the time to wait, can be extended as needed. This is an 'up-to' wait and will not necessarily stop for 60 seconds.
    var nextBTN = testhelper.FireFoxBrowser.FindElement(By.ClassName("trigger-next-button"));
nextBTN.Click();
//Wait for that button to 'go away' before proceeding.
wait.until(ExpectedConditions.stalenessOf(nextBTN));
//Wait for another instance of the button to appear and be clickable before proceeding.
wait.until(ExpectedConditions.elementToBeClickable(By.ClassName("trigger-next-button")));
nextBTN = testhelper.FireFoxBrowser.FindElement(By.ClassName("trigger-next-button"));
nextBTN.Click();
wait.until(ExpectedConditions.stalenessOf(nextBTN));

有关等待和预期条件的更多信息,请参见以下内容:

  • https://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/support/ui/expectedconditions.html
  • http://www.seleniumhq.org/docs/04_webdriver_advanced.jsp
 类似资料:
  • 我对简单点击按钮有问题。它的按钮是CSS。 我想执行点击操作,我使用以下代码: 我得到错误: 为什么我会犯这个错误?它应该工作得很好。此按钮位于Web的底部。也许我应该向下滚动一页?

  • 我尝试按类名查找元素。不幸的是,我必须选择的类名包含双下划线,并引发“没有这样的元素”错误。 < code>div-element选择: 选择: 当前结果(错误): selenium . common . exceptions . nosuchelementexception:消息:没有这样的元素:找不到元素:{"method":"css selector "," selector ":"。结果列

  • 我正在尝试使用Selenium (2.31.0,使用JavaSE 1.6和IE9)来查找一个页面上的一系列元素。这些元素都有两个类名,“dataLabel”或“dataLabelWide”。目前,我的代码在两个单独的ArrayLists中收集这些元素,每个类名一个,然后将它们转换成数组,并组合成一个数组。然而,这个方法列出的元素是无序的,我需要它们保持在页面的HTML源代码中相同的顺序。 我的代码

  • 问题内容: 如何在元素列表中选择某个元素?我有以下几点: 很明显,我有适用于所有类的CSS类,但是我也希望能够选择此类的第一,第二或第三div , 而不管它们在标记中的位置 : 几乎类似于jQuery索引选择,这是我当前正在使用的选择,但是我需要一个无脚本的替代方法。 具体来说,我在寻找伪选择器,而不是添加其他类或使用ID来使事情正常工作。 问题答案: 您可能终于在发布此问题与今天之间意识到了这一

  • 我试图引用并单击网页上的元素。 我们应该能够使用简单的XPath进行引用。例如 然而,这似乎并不奏效。 我使用的chrome扩展表示该元素不存在。 我的代码找不到元素。 下面是我使用Selenium web驱动程序的Java代码。 以下是错误: 太奇怪了!关于为什么我不能引用元素,或者为什么xPath不exist的任何想法。

  • 问题内容: 我正在尝试使用Selenium(2.31.0,使用JavaSE 1.6和IE9)在页面上查找一系列元素。这些元素都具有两个类名之一,即“ dataLabel”或“ dataLabelWide”。当前,我的代码将这些元素收集在两个单独的ArrayList中,每个类名一个,然后将它们转换为数组并将它们组合为一个数组。但是,此方法无序列出了元素,我需要将它们按在页面HTML源代码中找到的相同