当前位置: 首页 > 知识库问答 >
问题:

如何使用xpath获取以下文本名称?

段劲
2023-03-14

我尝试使用以下xpath

driver.findElement(By.xpath("//div[contains(@class,'ReactTags__selected')]//span[1]/text()"));

但获取以下错误

“org.openqa.selenium.InvalidSelectorException:选择器无效:xpath表达式的结果”//div[包含(@class,'ReactTags\uu selected')]]//span[2]/text()“是:[对象文本]。它应该是元素。”

<div class="ReactTags__selected">
        <span class="tag-wrapper ReactTags__tag" style="opacity: 1; cursor: auto;" draggable="true">
        "TestName"
        <a class="ReactTags__remove">×</a>
        </span>
</div>

共有3个答案

崔宜修
2023-03-14

由于父元素包含属性,所以它总是一个动态元素,确切地说是React元素。此外,由于文本测试名是一个文本节点,您需要为元素定位的可见性(visibilityOfElementLocated())引入WebDriverWait,并且可以使用以下任一定位器策略:

>

  • css选择器

    System.out.println(((JavascriptExecutor)driver).executeScript('return arguments[0].firstChild.textContent;', new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("div.ReactTags__selected > span.tag-wrapper.ReactTags__tag")))).toString());
    

    xpath

    System.out.println((String)((JavaScriptExecutor)driver).executeScript("return arguments[0].firstChild.textContent;", new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[@class='ReactTags__selected']/span[@class='tag-wrapper ReactTags__tag']")))));
    

  • 幸经艺
    2023-03-14

    xpath中的返回文本节点,Selenium不支持它。找到元素并使用getText()获取文本

    WebElement element = driver.findElement(By.xpath("//div[contains(@class,'ReactTags__selected')]//span[1]"));
    String text = element.getText();
    
    张瀚漠
    2023-03-14

    请尝试以下Xpath。

    希望有帮助

    //div[contains(@class,'ReactTags__selected')]//span[2]/a/text()
    
     类似资料:
    • 我尝试使用 在此输入图像描述 如果我打印出来,我会得到: 我想:“荷兰人在中国的问题。”

    • 有了下面的XML示例文档,我需要发出一个XPath/XQuery表达式来获取CD元素的每个子元素的元素名。 所以我需要的查询返回标题,艺术家,国家,国家,价格,年份,任何人都可以帮助请?谢谢

    • 我有一个方法接受InputStream作为参数。如何找到传递的处理程序正在处理哪个文件? 例如: 文件名应该替换为什么,以便显示处理程序打开的文件的名称。

    • 我正在尝试从网页复制一个文本元素并在我的控制台中打印它,作为对未来项目的测试。 这些是我收到错误时的行: 错误是这样的: 然后我的chomedrive关闭了。有什么问题?

    • 我有一个使用XPath使用类标题“hivered by”(这个类对所有类都是相同的)获得“电子艺术”(这可以根据数据改变)下面的文本的要求。我尝试了各种xpath编码,但无法得到我想要的结果。我真的在找人帮忙。

    • 我的Android应用程序中有以下字符串: