我正在尝试选择包含锚点的元素,但文本被隐藏在div内部的段落中.这是我正在使用的HTML:
Smoke Sequential
我用来试图阻止它的代码是针对"Smoke Sequential"文本:
driver.findElement(By.linkText(service)).click();变量'service'在其中包含"Smoke Sequential".当我运行它时,我收到以下错误:
org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"link text","selector":"Smoke Sequential"}任何帮助将不胜感激.
2 个回答
使用xpath和text()
driver.findElement(By.Xpath("//strong[contains(text(),'" + service +"')]"));2023-02-12 19:51 回答杰v杰123_246问题可能出在html的其余部分,即你没有发布的部分.
通过这个例子(我只是关闭了开放的标签):
<a class="item" ng-href="#/catalog/90d9650a36988e5d0136988f03ab000f/category/DATABASE_SERVERS/service/90cefc7a42b3d4df0142b52466810026" href="#/catalog/90d9650a36988e5d0136988f03ab000f/category/DATABASE_SERVERS/service/90cefc7a42b3d4df0142b52466810026"> <div class="col-lg-2 col-sm-3 col-xs-4 item-list-image"> <img ng-src="csa/images/library/Service_Design.png" src="csa/images/library/Service_Design.png"> </div> <div class="col-lg-8 col-sm-9 col-xs-8"> <div class="col-xs-12"> <p> <strong class="ng-binding">Smoke Sequential</strong> </p> </div> </div> </a>我能够找到没有问题的元素:
driver.findElement(By.linkText("Smoke Sequential")).click();如果元素中有更多文本,您可以尝试通过部分链接文本进行查找:
driver.findElement(By.partialLinkText("Sequential")).click();2023-02-12 19:53 回答zy7ume撰写答案今天,你开发时遇到什么问题呢?立即提问