如何在 Java 中使用 Selenium 选择这个元素?

Posted

技术标签:

【中文标题】如何在 Java 中使用 Selenium 选择这个元素?【英文标题】:How would I select this element using Selenium in Java? 【发布时间】:2018-09-15 10:34:38 【问题描述】:

我正在尝试在 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() 来满足我的需求。

【问题讨论】:

你能显示实际代码吗? 【参考方案1】:

您只能对标签内的元素使用 By-selector。

获取元素的文本

    你可以使用

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

    或者(如果你喜欢更多):

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

    或通过

    从页面源中获取

    String source = driver.getPageSource();

并从中提取一个字符串,以“numfound”开头并以以下标记结尾 然后从这一行中提取你的字符串。

【讨论】:

啊,我忘了使用 .getText()。非常感谢!【参考方案2】:

你只需要这样做:

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

【讨论】:

【参考方案3】:

这个 span 是一个 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).

还有更多。

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

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

并对其进行字符串操作。 如果您对此有任何疑虑,请告诉我。

【讨论】:

以上是关于如何在 Java 中使用 Selenium 选择这个元素?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Java在Selenium WebDriver中按类名选择下拉值[重复]

如何使用 Selenium WebDriver 和 java 从下拉列表中选择一个项目?

如何使用 Java 计算 Selenium WebDriver 中选择下拉框中的选项数量?

如何使用给定的屏幕坐标选择元素 - selenium,java

如何使用带有 java 的 selenium Web 驱动程序从下拉菜单中选择一个元素?

如何在 Selenium WebDriver Java 中选择下拉值