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

如何使用SeleniumWebDriver从外部元素检索文本?,selenium,selenium-webdriver,Selenium,Selenium Webdriver,如何使用selenium webdriver从下面的代码中检索文本“Capture jake” 我可以使用下面的xpath指向该文本,但无法打印文本:( //*[@id='full-scorecard']/div[2]/div/table[1]/tbody/tr[3]/td[2]/child::text() 12.6抓到杰克 73/4 根据您的语言,您可以使用以下xpath表达式: //div[@class='large 20 columns']/table/tbody/tr/tr/td[2

如何使用selenium webdriver从下面的代码中检索文本“Capture jake”

我可以使用下面的xpath指向该文本,但无法打印文本:(

//*[@id='full-scorecard']/div[2]/div/table[1]/tbody/tr[3]/td[2]/child::text()


12.6抓到杰克
73/4


根据您的语言,您可以使用以下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);

使用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-inennings']/tr/tr/tr/td[2]/b))“,否则会出现异常。

请提供更多详细信息。您使用哪种编程语言以及您尝试了什么?我使用的是“JAVA”。我能够获取文本“12.6”和“73/4”,但无法使用Xpath获取文本“Catch Jake”。使用b1作为Xpath的一部分,我能够获取12.6和b2,我能够获取73/4,但我不知道h如何检索文本'catch Jake'WebElement txt=driver.findelelement(By.xpath(“/*[@id='full-scorecard']]/div[2]/div/table[1]/tbody/tr[3]/td[2]/child::text()”);System.out.println(txt);无法打印文本如何将webelement转换为文本。我能够获取文本“12.6”和“73/4”,但无法使用Xpath获取文本“Capture Jake”。使用b1作为Xpath的一部分,我能够获取12.6和b2,我能够获取73/4,但我不知道如何检索文本“Capture Jake”,我使用“JAVA”。我能够获取文本“12”。6'和'73/4'但无法使用Xpath获取文本'Catch Jake'。使用b1作为Xpath的一部分,我可以获取12.6和b2,我可以获取73/4,但我不知道如何单独检索文本'Catch Jake'。这不起作用。在主线程中显示异常无法定位元素错误//WebElement text=driver.findElement(By.xpath(“//div[@class='large 20 columns']/table/tbody/tr/tr[2]/child::text()”);System.out.print(“text=“+text”);线程“main”org.openqa.selenium.NoSuchElementException中的异常:无法找到元素:{“方法”:“xpath”,“选择器”:”//div[@class='large 20 columns']/table/tbody/tr/tr/td[2]/child::text()”)WebElement Text=driver.findElement(By.xpath(“//div[@class='large 20 columns']/table/tbody/tr/tr/td[2]/child::Text()”);System.out.print(“Text=“+Text”);thread“main”java.lang.ClassCastException:java.util.ArrayList不能在Webtable\u CaughtJack.main(Webtable\u CaughtJack.java:24)转换为java.lang.String
  String text =  driver.findElement(By.xpath("//table[@class='batting-table innings']/tr/tr/tr/td[2]/b")).getText();
  System.Out.print("Text= "+text);