我想找到XPATH / CSS定位器来从以下结构中提取文本。 请帮助。
<div class="page-header song-wrap">
<div class="art solo-art">
<div class="meta-info">
<h1 class="page-title">
Zehnaseeb
我想给定位器/ XPATH以便它可以返回文本“Zehnaseeb”(在这种情况下)
这没有产生任何结果,
driver.findElement(By.xpath(” .//*[@ ID = '主'] / DIV /部分/ DIV [1] / DIV [2] / H1" ))的getText();
答案 0 :(得分:0)
如果您使用的是C#,我建议使用“ScrapySharp”,它非常适合解析HTTML。
https://bitbucket.org/rflechner/scrapysharp/wiki/Home
Document htmlDoc = new HtmlDocument();
htmlDoc.loadHtml(driver.PageSource);
var zehnaseebstring = doc.DocumentNode.CssSelect("h1.page-title").SingleOrDefault().InnerText;
这应该有效。
答案 1 :(得分:0)
我会检查其间的所有元素,看看层次结构是否正确,但您可以尝试通过使用后代//
来删除其中的一些元素来简化
//*[@id='main']//h1[@class='page-title']
答案 2 :(得分:0)
您是否尝试了waiting元素,
String text = new WebDriverWait(driver,30).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("div.page-header h1.page-title"))).getText();