gpt4 book ai didi

java - Selenium (Java) 无法通过可见链接文本找到元素

转载 作者:行者123 更新时间:2023-12-01 17:42:28 25 4
gpt4 key购买 nike

我遇到了最令人沮丧的 Selenium 问题之一。

我在页面上有一个表格,其中一个元素有一个链接。该链接称为“发送短消息”。

<td data-e2e-selector="sakHendelser" id="sakHendelser_0" class="ng-star-inserted">
<saksnytt><!----><!----><!---->
<div class="hb-tekst--ingenBryting ng-star-inserted">
<!----><!----><!---->
<button class="hb-knapp hb-knapp--lenke hb-knapp--alignTeks hb-knapp-lenke-nopadding ng-star-inserted"
data-e2e-selector="saksnytt-link">
<i aria-hidden="true" class="fa fa-flag fa-envelope"></i>
<span class="hb-knapp-tekst">Send brev </span></button> &nbsp;&nbsp;
<!----><span aria-hidden="true" class="fa fa-info-circle ng-star-inserted"
id="reservert-info">
</span><!----><!----><!----></div><!---->
</saksnytt></td>

这以前有效,但我还没有找到它现在停止工作的原因。但无论我如何尝试找到它,Selenium 都会响应

 no such element: Unable to locate element: {"method":"xpath","selector":"//data-e2e-selector[contains(text(),'Send brev ')]"}

或类似-

我尝试过以下方法:

Browser.Wait().until(presenceOfElementLocated(By.linkText(merknad + " ")));

这次超时了。

driver.findElement(By.linkText(merknad + " ")).click();
driver.findElement(By.partialLinkText(merknad + " ")).click();
driver.findElement(By.xpath("//data-e2e-selector[contains(text(),'" + "Send brev" +"')]"));
driver.findElement(By.xpath("//id[contains(text(),'" + "Send brev" +"')]"));
data-e2e-selector="sakHendelser" id="sakHendelser

我还尝试在链接文本中的“v”后面添加空格,但没有成功。

Selenium怎么找不到像这样清晰可见且可交互的元素呢?

由于代码是在 Angular 中生成的,并且或多或少是动态的,所以我也无法为这个特定元素创建标签,所以我只能尝试通过文本找到它。我无法上类。

有什么想法吗?

我可以使用以下代码点击它:

driver.findElement(By.xpath("//*[@id='sakHendelser_0']/saksnytt/div/button/span")).click();

但我希望能够将链接文本发送到该方法,而不是像那样对 xpath 进行硬编码。

最佳答案

LinkText 和 PartialLinkText 仅适用于 A 标记内的文本。给定的 HTML 中没有该内容,因此这不起作用。在给定包含文本的情况下定位元素的唯一选择是使用 XPath。

关于java - Selenium (Java) 无法通过可见链接文本找到元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59358600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com