我如何 select 这个元素在 Java 中使用 Selenium?
How would I select this element using Selenium in Java?
我正在尝试 select 在 Java Selenium on ChromeDriver
中获取值 1352
<span class="numfound" id="yui_3_18_1_1_1522936314968_15">1352</span>
因为 id 不直观,我想 select 使用字符串 "numfound"。我已经尝试 selecting byClassName("numfound") 并且返回了:
<[[ChromeDriver: chrome on MAC (befee42078624a3b036869cf2a4a0c14)] -> class name: numfound]>
或者,我尝试通过 CSS select 并得到了这个:
Unable to locate element: {"method":"css selector","selector":"#resultsnum span.numfound"}
也许我的 select 或 CSS 错了?使用 numfound select 这个元素最直观的方法是什么?
已解决:我很傻,没有使用 .getText() 来实现我想要的。
您只能对标签内的元素使用 By-selector。
获取元素的文本
可以使用
driver.findElement(By.xpath("//span[@class='numfound']")).getText();
或(如果你喜欢更多):
driver.findElement(By.className("numfound")).getText();
或通过
从页面源获取
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
这个跨度是一个 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();
并对其进行字符串操作。
如果您对此有任何疑虑,请告诉我。
我正在尝试 select 在 Java Selenium on ChromeDriver
中获取值 1352<span class="numfound" id="yui_3_18_1_1_1522936314968_15">1352</span>
因为 id 不直观,我想 select 使用字符串 "numfound"。我已经尝试 selecting byClassName("numfound") 并且返回了:
<[[ChromeDriver: chrome on MAC (befee42078624a3b036869cf2a4a0c14)] -> class name: numfound]>
或者,我尝试通过 CSS select 并得到了这个:
Unable to locate element: {"method":"css selector","selector":"#resultsnum span.numfound"}
也许我的 select 或 CSS 错了?使用 numfound select 这个元素最直观的方法是什么?
已解决:我很傻,没有使用 .getText() 来实现我想要的。
您只能对标签内的元素使用 By-selector。
获取元素的文本
可以使用
driver.findElement(By.xpath("//span[@class='numfound']")).getText();
或(如果你喜欢更多):
driver.findElement(By.className("numfound")).getText();
或通过
从页面源获取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
这个跨度是一个 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();
并对其进行字符串操作。
如果您对此有任何疑虑,请告诉我。