当前位置: 首页 > 面试题库 >

Selenium WebDriver无法通过链接文本找到元素

养淇
2023-03-14
问题内容

我正在尝试选择一个包含锚点的元素,但文本被埋在div内的一个段落中。这是我正在使用的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>

我用来尝试捕获的代码针对的是“ Smoke Sequential”文本,其内容为:

driver.findElement(By.linkText(service)).click();

变量“服务”中包含“烟雾顺序”的位置。运行它时,出现以下错误:

org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"link text","selector":"Smoke Sequential"}

任何帮助将不胜感激。


问题答案:

问题可能出在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();


 类似资料:
  • 我试图通过xpath获取一个输入元素,但是return语句是false。 当我试图获取标签(它是输入的唯一兄弟)时,它返回true。我也尝试通过输入类型[@type=“checkbox”]获取它,但也失败了。 null

  • 问题内容: 我目前正在使用python 3.6.5,selenium版本3.14.0 如果我创建了如下所示的网络元素: 我无法使用以下内容: 我已经仔细检查过是否成功创建了该元素,但是使用selenium包提供的API(例如find_element_by_id和上面的脚本)无法找到该元素。 问题:在execute_script之后注入新元素之后,我还需要做其他事情吗?还是目前,这不可能吗? 我可以

  • 我会收到以下错误消息: el=self.driver.find_element_by_xpath(element_query)文件“/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py”,第393行,在find_element_by_xpath中返回self.find_element(by=by.

  • 问题内容: 我有一个大型的maven项目,该项目使用pmd插件进行代码质量检查。 自从我开始使用Pmd插件以来,我收到以下警告消息: 我用谷歌搜索,发现我需要实现jxr插件。 所以我将以下内容添加到主pom.xml文件的build属性中。 哭泣并没有真正改变任何东西。 为了解决此警告消息,我需要实现什么想法? 输出 谢谢! 问题答案: 您应将添加到 部分。 重新运行并享受。 顺便说一句,也许您需要

  • 问题内容: 如何通过单击任何链接打开本地文件夹视图? 我尝试了很多选择 要么 要么 问题答案: 由于安全性限制,在所有现代浏览器中都禁止链接到本地​​资源。 对于Firefox: 为了安全起见,Mozilla应用程序阻止从远程文件到本地文件(和目录)的链接。这包括链接到硬盘驱动器,映射的网络驱动器上的文件,以及通过统一命名约定(UNC)路径访问的文件。这样可以避免许多不愉快的可能性,包括: 允许站

  • 问题内容: 如果我搜索单个字符串,则效果很好: 但是我可以在下面的示例中有一个 or 语句吗? 问题答案: 在两个函数调用之间说 或使用函数使xpath不区分大小写