java - 如何单击已被截断一部分的链接文本

标签 java selenium selenium-webdriver

Screenshot

我有一个链接文本,如上所示,我正在尝试使用以下方法找到并单击它,

driver.findElement(By.linkText("Front printer (Based on price list) – UPDATE")).click();
driver.findElement(By.partialLinkText("Front printer (Based on price list) – UPDATE1")).click();

链接文本是由 Excel 文件数据驱动的(上面只是为了显示我发布的原始链接文本是什么) 问题是每当它尝试搜索时都会显示 nosuchelementexception() 。由于链接文本被截断了一些字符。

我无法使用 xpath,因为该元素是动态的,它会不断更改其在列表网格中的位置,并且 id 会不断更改,因此请建议我需要选择链接文本或部分链接文本的方法。

HTML 代码是

    <tr id="ctl00_ContentPlaceHolder1_RadGrid1_ctl00__0" class="rgRow">

   < td align="left" style="width:3%;">

    <td align="left" style="width:45%;">

    <div style="float: left; width: 99%; overflow: hidden; height: 15px">

    <a href="http://192.168.1.6/eprint_prod_3.8/settings/digital_press_add.aspx?type=edit&    id=735" title="Front printer (Based on price list) - UPDATE">

    <span id="ctl00_ContentPlaceHolder1_RadGrid1_ctl00_ctl04_lblGuillotineName"    class="label_GV" style="display:inline-block;width:100%;">Front printer (Based on price list) - UPDATE</span>

    </a>

    </div>

    </td>

    <td align="left" style="width:52%;">

   <td align="center" style="width:5%;">

    <td align="center" style="width:10%;">

   < /tr>

最佳答案

由于实际的链接文本被截断,因此使用子字符串进行搜索,至少使用获得唯一匹配所需的最小字符数。

请注意,使用 By.partialLinkText 时,必须提供要搜索的部分文本,如下所示。

//assuming the below string is read from excel
String searchTxt = "Front printer (Based on price list) – ADD 1";
//try to search for the link using the first 30 chars
driver.findElement(By.partialLinkText(searchTxt.substring(0,30))).click();

上面的代码将返回它根据提供的部分文本找到的第一个匹配项。

关于java - 如何单击已被截断一部分的链接文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22162937/

相关文章:

java - Java 中的可滚动列表

java - Selenium WebDriver jQuery

javascript - 如何在 Nightwatch.js 中的部分使用命令?

java - 如何跳过await driver().manage().timeOut()

python - 获取selenium web元素标签的href值

java - 启动适用于 Web 开发人员的 Eclipse Java EE IDE 时出错

java - 发送电子邮件 html 表单

javascript - Webdrivercss 制作整个页面截图

node.js - 使用 Node 时无法运行 iOS Appium 测试

java - JAVA服务器/客户端程序的解决方案