【问题标题】:Webdriver how replace dynamic locator to use Page FactoryWebdriver如何替换动态定位器以使用页面工厂
【发布时间】:2015-09-09 21:47:41
【问题描述】:

这里是html代码:

<table>
<tbody>
<tr>
  <td>
    <a>text1</a>
  </td>
  <td>
    <div>delete<div/>
  </td>
</tr>
</tbody>
</table>

<table>
<tbody>
<tr>
  <td>
    <a>text1</a>
  </td>
  <td>
    <div>delete<div/>
  </td>
</tr>
</tbody>
</table>

我需要点击“删除”,其中包含指定的文本(例如“text1”)。 我使用以下 xpath 执行此操作:

driver.findElement(By.xpath(".//div/table/tbody/tr/td[text()='" + id + "']/following-sibling::td[3]/div")).click(); 

但我想使用页面工厂并避免使用动态定位器。 那么有人知道如何以另一种方式点击所需的元素吗?

【问题讨论】:

    标签: selenium selenium-webdriver webdriver


    【解决方案1】:

    如果您的 xPath 有效,为什么不能在页面对象中使用它?

    如果您使用 Java,请这样做:

    @FindBy(how = How.xpath, using = "".//div/table/tbody/tr/td[text()='" + id + "']/following-sibling::td[3]/div"")
    

    【讨论】:

    • 这行得通吗?我认为@Findby 仅在编译时捕获价值。
    猜你喜欢
    • 2013-11-18
    • 2012-07-08
    • 1970-01-01
    • 2016-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多