我将如何使用Java中的Selenium选择此元素



我正在尝试选择Chromedriver上Java Selenium中的值1352

<span class="numfound" id="yui_3_18_1_1_1522936314968_15">1352</span>

由于ID不直觉,因此我想使用字符串" numfound"选择。我尝试选择ByClassName(" NumFound"(,然后返回:

<[[ChromeDriver: chrome on MAC (befee42078624a3b036869cf2a4a0c14)] -> class name: numfound]>

另外,我尝试通过CSS选择并得到了:

Unable to locate element: {"method":"css selector","selector":"#resultsnum span.numfound"}

也许我的CSS选择者错了?使用numfound选择此元素的最直观的方法是什么?

解决:我很傻,没有使用.getText((作为我想要的。

此跨度是一个webelement。您可以通过webelement做一些事情。其中一些是:

    1. click on it. (Provided that element must be clickable)
    2. getText() : Text between the <span> and </span> tag.
    3. getSize();
    4. getLocation();
    5. getScreenShotAs(OUTPUT.Type)
    6. getRect();
    7. SendKeys(charSequence)  (Provided that it can take input something).

以及更多。

截至目前,在您的问题中,您可以在跨度标签之间获取文本。通过使用此代码:

String spanText = driver.findElement(by.cssSelector("span[class="numfound"]")).getText();  

并在其上进行字符串操作。
让我知道您是否对此有任何担忧。

您只能将副选择用于标签内部的元素。

获取元素的文本

  1. 您可以使用

    driver.findElement(By.xpath("//span[@class='numfound']")).getText();

    或(如果您愿意的话(:

    driver.findElement(By.className("numfound")).getText();

  2. 或从页面源获取

    String source = driver.getPageSource();

并从中提取一个字符串,从" numfound"开始,然后以以下标签结尾然后从此行中提取字符串。

您只需要做:

WebElement element = browser.findElement(By.className("numfound"));
//do whatever you want with your element, get attributes, etc.

参考:https://www.seleniumhq.org/docs/03_webdriver.jsp#by-class-name

相关内容

  • 没有找到相关文章

最新更新