我将xpath转换为Jsoup 下面是我的xpath(在我的selenium webdriver中使用)
String number = driver.findElement(By.xpath("//span[@data-dojo-attach-point='subNumber']")).getText();
相当于jsoup
String number = doc.select(" >span >data-dojo-attach-point=subNumber").text();
System.out.println(number);
执行低于错误时
Could not parse query 'data-dojo-attach-point=subNumber': unexpected token at '=subNumber'
HTML:
<div class="subHeaders">
<div class="subHeaderItem">
<h5 class="smallGray">Number</h5>
<span data-dojo-attach-point="subNumber">94607506</span>
</div>
</div>
任何人都可以帮助。
答案 0 :(得分:0)
这是您使用selectFirst(String cssQuery)然后html()检索该数据的方式:
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class TestA {
public static void main(String[] args) throws IOException {
//this is where chromedriver.exe should be
String driverPath = "yourDriverPath";
System.setProperty("webdriver.chrome.driver", driverPath);
WebDriver driver = new ChromeDriver(); ;
driver.get("YourURL");
WebDriverWait wait = new WebDriverWait(driver, 15);
String cssSelector = "span[data-dojo-attach-point=subNumber]";
wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(cssSelector)));
Document doc = Jsoup.connect("YourURL").get();
Element subNumber = doc.selectFirst(cssSelector);
System.out.println(subNumber.html());
}
}
94607506
注意:我在我的笔记本电脑上尝试过以上操作,但它正在运行。
答案 1 :(得分:0)
使用此CSS选择器。
div.subHeaders > div.subHeaderItem > span
String number = doc.select("div.subHeaders > div.subHeaderItem > span").text();
如果页面已加载,则将显示文本。使用“尝试Jsoup”来验证是否能够获取文本。
点击此link。单击“获取URL”,然后输入您要解析的页面的URL,然后单击“获取”。让我知道您是否能够获得价值。
如果您不介意在此处发布URL,请在此处发布URL。我们将为您提供帮助。