如何使用selenium webdriver从外部元素检索文本?

时间:2015-09-27 12:40:53

标签: selenium selenium-webdriver

如何使用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/>

2 个答案:

答案 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);