Java Selenium-无法按类名定位元素

Java Selenium-无法按类名定位元素,java,selenium-webdriver,Java,Selenium Webdriver,我想找到一个带有class=“big number”的p标记。以下是我编写的代码: WebElement myDynamicElement = (new WebDriverWait(driver, 10)).until(ExpectedConditions.presenceOfElementLocated(By.className("big-number"))); System.out.println(driver.getTitle()); System.out.println(myDynami

我想找到一个带有
class=“big number”
p
标记。以下是我编写的代码:

WebElement myDynamicElement = (new WebDriverWait(driver, 10)).until(ExpectedConditions.presenceOfElementLocated(By.className("big-number")));
System.out.println(driver.getTitle());
System.out.println(myDynamicElement);
以下是我的输出:

[[FirefoxDriver: firefox on MAC (fed46ad4-9ca9-9344-a57a-1d336db3927c)] -> class name: big-number]
我无法识别错误,它给了我一个输出,但对我来说毫无意义。 关于如何至少识别我的错误,有什么建议吗

我肯定元素存在,下面是HTML代码:

    <div id="users-online-container" style="">
        <img class="big-number-icon" src="images/usersOnline.png">
        <p class="big-number">228</p>
        <p class="caption">Users Online</p>
    </div>
    <div id="users-online-loading"></div>

228

用户在线


发生TimeOutException是因为驱动程序在特定时间内找不到元素。我想是选择器的问题。如果您确定该元素始终可见,并且存在于页面上,请尝试下一个代码:

//Select first paragraph in div
driver.FindElement(By.CssSelector("#users-online-container .big-number"));
//if you have several p with same classes you could access any of them using index. e.g.
driver.findElements(By.CssSelector(".big-number"))[index];
选择器可以是
#用户在线容器。大数字
。大数字
。这两种方法都有效。

请尝试下面的代码

    WebElement myDynamicElement = (new WebDriverWait(driver, 10)).until(ExpectedConditions.presenceOfElementLocated(By.className("big-number")));

// It will print the text of the Element:
system.out.println(myDynamicElement.getText());
此外,您还尝试在XPATH的帮助下定位该元素,并确保定位器是唯一标识该元素的。还要检查IsDisplayed()和IsEnabled()是否返回True

在代码中,您正在打印将打印哈希代码的WebElement。 为了获取元素的文本,必须使用getText()方法


希望这会有帮助

多发布一点堆栈跟踪和错误消息会有所帮助。另外,元素是否有多个类?同一个类中还有两个元素。这是一个示例

45

55

没有错误,输出是我提供的。如果我改为HtmlUnitDriver,我会得到一个错误。我会发布错误是什么编辑对你有帮助吗?嘿!谢谢你的回复!我现在将更经常地使用CSS选择器,因为我认为它比必须声明两个web元素要简单得多。我发现了错误,因为我没有.getText()。它给了我一些地址w/o.getText()奇怪的原因是我没有看到任何包含这个的教程。无论如何,我的错误已经解决了,谢谢你花时间回复