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

如何从div元素获取文本只返回一个“.”和硒

罗河
2023-03-14

我有一个div元素,如下所示。

我使用以下xpath标识此元素。

//*[contains(@class,'ce-component-title')]

Selenium标识此元素并加载WebElement对象。但当我去获取它的文本时,我只得到一个“.”如下所示,而不是获取“购买到付款流程”。我做错了什么?我检查了chrome控制台,没有其他元素匹配这个xpath。

任何帮助都将不胜感激。

共有2个答案

萧树
2023-03-14

我认为您的xpath(//*[contains(@class,'ce-component-title'))返回多个元素,并且您需要的元素不是第一个。尝试使用浏览器的控制台来验证此xpath返回的元素数。如果你给我这个页面的url,我可以帮你。

冀越
2023-03-14

根据您共享的HTML,元素是一个角度元素,因此您必须引导WebDriverWait使所需元素可见,并且您可以使用以下任一解决方案

>

  • css选择器

    String myString = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("div[ng-if*='getTitle']>div.ce-component-title"))).getAttribute("innerHTML");
    

    xpath

    String myString = new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[contains(@ng-if,'getTitle')]/div[@class='ce-component-title flex text-overflow ng-binding']"))).getAttribute("innerHTML");
    

  •  类似资料:
    • 我有一个div元素,如下所示。 我用下面的XPath标识这个元素。 Selenium标识此元素并加载WebElement对象。但当我去获取它的文本时,我得到的只是一个“。”如下所示,而不是获取“采购到付款流程”。我在这里做错了什么?我检查了chrome控制台,没有其他元素与此XPath匹配。 任何帮助都将不胜感激。

    • 我想从Chrome的模态中得到一条短信。使用控制台,我可以获得如下内部文本: 现在,在我的测试中,我可以使用 我甚至可以点击那个网址 例如,我不能将内部文本放入变量。我试着使用这篇文章中的ClientFunction 并尝试使用本文建议的普通选择器 如何从元素中提取文本?我知道在这种情况下是有限的,对吗?

    • 问题内容: 是否可以仅从父元素而不是Selenium中的子元素获取文本? 示例:假设我有以下代码: 用C#(或任何语言),我将有: 但是,链接文本将带有“ Google Link此链接会将您带到Google主页”。 如果不进行大量的字符串操作(例如获取所有子项的文本并从父项的结果文本中减去该文本),是否有办法从父项元素中仅获取文本? 问题答案: 这是一个常见的问题,因为您无法直接访问文本节点- 换

    • 在Selenium中,是否可以仅从父元素而不是其子元素获取文本? 例如:假设我有以下代码: 用C#(或任何语言),我将有: 然而,链接文本将有“谷歌链接”这个链接将带你进入谷歌主页 如果不进行一系列字符串操作(例如获取所有子元素的文本,并从父元素的结果文本中减去这些文本),有没有办法只从父元素获取文本?

    • 问题内容: 的HTML 码 问题答案: 我已经看到这个问题在过去大约一年左右的时间里弹出了几次,我想尝试编写此函数…所以就到这里了。它接受父元素,并删除每个子元素的textContent,直到剩下的是textNode为止。我已经在您的HTML上对其进行了测试,并且可以正常工作。 你叫它

    • 当已知Python列表总是包含单个项时,除了: 你可能会问,'你为什么要这么做?‘。仅仅是好奇心。在Python中似乎有一种替代的方法来完成所有的事情。