如何使用selenium webdriver从以下代码中检索“抓住jake”文本?
能够使用下面的xpath指向该文本,但无法打印文本。 :(
// * [@ id中= '全记分卡'] / DIV [2] / DIV /表[1] / tbody的/ TR [3] / TD [2] /子::文本()
<div class="row">
<div class="large 20 columns">
<table class="batting-table innings" width="100%">
<tbody>
<tr class="tr-heading">
<tr>
<tr class="dismissal-detail" style="display: table-row;">
<td width="2%" />
<td colspan="8">
<b>12.6</b> caught Jake
<b>73/4</b>
<br/>
答案 0 :(得分:0)
使用java,您可以从以下行中检索:
String text = driver.findElement(By.xpath("//div[@class='large 20 columns']")).getText();
System.Out.print("Text= "+text);
上面一行将返回div元素的所有内部标签字符串。
如果您只想获得12.6文本,请使用以下行:
String text = driver.findElement(By.xpath("//table[@class='batting-table innings']/tr/tr/tr/td[2]/b")).getText();
System.Out.print("Text= "+text);
并确保应该有单个元素具有此xpath'By.xpath(“// table [@ class ='batting-table innings'] / tr / tr / tr / td [2] / b” )',否则你会得到一个例外。
答案 1 :(得分:-1)
取决于您的语言,您可以使用以下xpath表达式:
//div[@class='large 20 columns']/table/tbody/tr/tr/td[2]/child::text()
完整的Java代码:
JavascriptExecutor js = (JavascriptExecutor) driver;
String jsx = "return document.evaluate(\"//*[@id='full-scorecard']/div[2]/div/table[1]/tbody/tr[3]/td[2]/child::text()\", document, null, XPathResult.STRING_TYPE, null).stringValue;";
String objList = js.executeScript(jsx);
System.out.println( (String) objList);