如何获得所有<a>
值?
<div id="mCSB_1_container" class="mCSB_container" style="position: relative; top: -985px; left: 0px;" dir="ltr">
<li>
<a href="#" rel="" class="" style="background-color: rgb(247, 247, 249);">All countries</a>
</li>
<li>
<a href="#217" rel="217" class="">Germany</a>
</li>
<div>
当我使用
时List<WebElement> allElements = driver.findElements(By.xpath("//div[@id='mCSB_1_container']/li/a"));
for (WebElement element: allElements) {
System.out.println(element.getText());
}
我得到空值。
答案 0 :(得分:1)
List<WebElement> allElements = driver.findElements(By.tagName("a"));
for(WebElement element: allElements)
{
System.out.println(element.getText());
}
答案 1 :(得分:0)
Jsoup是一个很棒的html解析器,可以和Selenium一起使用。 这是Jsoup网页; https://jsoup.org/
如果你想从页面获得所有链接,你可以像这样使用Jsoup;
Document doc = Jsoup.connect("https://jsoup.org/").get();
Elements links = doc.select("a[href]");
for (Element link : links) {
print(link);
}
此代码段允许您获取所有链接的所有href值。如果你想从网页上获取所有内容;
Elements links = doc.select("a");
而不是
Elements links = doc.select("a[href]");
答案 2 :(得分:0)
尝试以下选择器之一:
By.xpath("//div[@id='mCSB_1_container']/li/a")
By.cssSelector("#mCSB_1_container li a")
By.cssSelector("div[id='mCSB_1_container'] li a")
By.xpath("//*[contains(@id, 'mCSB_1_container')]/li/a")
或者其中一个findElements(我不知道Java是否包含对IWebElement的FindElements扩展,但它适用于其他语言):
List<WebElement> allElements = driver
.findElement(By.id("mCSB_1_container"))
.findElements(By.cssSelector("li a"));
List<WebElement> allElements = driver
.findElement(By.id("mCSB_1_container"))
.findElements(By.tagName("a"));
List<WebElement> allElements = driver
.findElement(By.id("mCSB_1_container"))
.findElements(By.xpath("//li/a"));
此外,如果没有人工作,请尝试使用以下内容查找休息时间:
By.cssSelector("#mCSB_1_container") //Shoud find the id.
By.cssSelector("#mCSB_1_container li") //Shoud find the li inside the id.
如果无法找到其中一个,则帧存在问题或等待元素显示