Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium 如何在跨度内获取文本_Selenium_Xpath - Fatal编程技术网

Selenium 如何在跨度内获取文本

Selenium 如何在跨度内获取文本,selenium,xpath,Selenium,Xpath,我试图找出XPath,它将从下面的HTML中检索“Love&Romand” <div class="m-breadcrumbs no-mobile"> <a href="/home" class="breadcrumbs-link">Home</a><span class="delimiter_breadcrumb_spacer">&gt;</span> <a href="/occasions/cat10000

我试图找出XPath,它将从下面的HTML中检索“Love&Romand”

<div class="m-breadcrumbs no-mobile">
   <a href="/home" class="breadcrumbs-link">Home</a><span class="delimiter_breadcrumb_spacer">&gt;</span>
   <a href="/occasions/cat1000008">Occasions</a><span class="delimiter_breadcrumb_spacer">&gt;</span>
   Love &amp; Romance
</div>

要从您提供的HTML中提取文本Love&Romand,您可以使用下面的代码块(Java perspective)后面的
executeScript()
方法:

  • :


更新
要提取文本爱情与浪漫,您还可以使用Java的
split()
方法作为替代方法:

  • :


您可以从div中删除所有子项,并在使用该div后删除

WebElement a = driver.findElement(By.xpath("//div[@class='m-breadcrumbs no-mobile']"));
List<WebElement> b = a.findElements(By.xpath("./*"));

for(WebElement aux : b) {

    JavascriptExecutor jsExecutor = (JavascriptExecutor) driver;
    jsExecutor.executeScript("arguments[0].parentNode.removeChild(arguments[0])", aux);

}

System.out.println(a.getText());
WebElement a=driver.findElement(By.xpath(“//div[@class='m-breadcrumbs no mobile']);
列表b=a.findElements(By.xpath(“./*”);
用于(WebElement辅助:b){
JavascriptExecutor jsExecutor=(JavascriptExecutor)驱动程序;
jsExecutor.executeScript(“参数[0].parentNode.removeChild(参数[0])”,aux);
}
System.out.println(a.getText());

尝试使用以下代码获取所需的文本节点:

WebElement myDynamicElement = (new WebDriverWait(driver, 10)).until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("div.m-breadcrumbs.no-mobile")));
JavascriptExecutor jse = (JavascriptExecutor)driver;
String loveRomance = jse.executeScript("return arguments[0].lastChild.textContent;", myDynamicElement);

你能添加一个你试图处理的HTML的摘录吗?爱与爱;Roman无法获取下面的文本错误org.openqa.selenium.WebDriverException:未知错误:无法读取的属性“textContent”undefined@user3538483签出我的更新代码,让我知道@DebanjanB获取更新代码并获取org.openqa.selenium.WebDriverException:unknown error:Cannot read属性的状态未定义的“textContent”Error@user3538483签出我的更新代码并让我知道状态
WebElement myElement = new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[@class='m-breadcrumbs no-mobile']")));
String my_string = myElement.getAttribute("innerHTML");
String[] stringParts = my_string.split("\n");
String mypart = stringParts[5];
System.out.println(mypart);
WebElement a = driver.findElement(By.xpath("//div[@class='m-breadcrumbs no-mobile']"));
List<WebElement> b = a.findElements(By.xpath("./*"));

for(WebElement aux : b) {

    JavascriptExecutor jsExecutor = (JavascriptExecutor) driver;
    jsExecutor.executeScript("arguments[0].parentNode.removeChild(arguments[0])", aux);

}

System.out.println(a.getText());
WebElement myDynamicElement = (new WebDriverWait(driver, 10)).until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("div.m-breadcrumbs.no-mobile")));
JavascriptExecutor jse = (JavascriptExecutor)driver;
String loveRomance = jse.executeScript("return arguments[0].lastChild.textContent;", myDynamicElement);