【问题标题】:How to write path to webelement using Xpath for JavascriptExecutor (Selenium)如何使用 Xpath for JavascriptExecutor (Selenium) 编写 webelement 的路径
【发布时间】:2017-11-02 06:54:18
【问题描述】:

尝试在 Selenium WebDriver 上编写自动测试。拥有带有 CSS 定位器的页面 Webelement:

@FindBy (css = "#FeedbackMessage")
protected WebElement fm;

也有以下工作方法聚焦出这个元素:

public void focusout(){
JavascriptExecutor js = (JavascriptExecutor) driver;

js.executeScript("arguments[0].blur();", fm);

问题是如何做同样的事情,但使用 xpath 定位器。元素的 xpath 是//textarea[@id='FeedbackMessage']

简单的用法

@FindBy (xpath = "//textarea[@id='FeedbackMessage']")
protected WebElement fm;

不工作

【问题讨论】:

  • 能否提供HTML代码?
  • 您的问题是什么?您是在说“琐碎的用法正在起作用”
  • 对不起,不工作
  • 我认为你让事情变得更加困难,如果你有元素的 id,你就不需要使用 xpath。 document.getElementById("FeedbackMessage").blur();
  • 你能试试@FindBy(id="FeedbackMessage")谢谢

标签: javascript selenium xpath


【解决方案1】:

其实在IDEA中通过调试找到了答案。

@FindBy (xpath = "//textarea[@id='FeedbackMessage'][1]") protected WebElement fm;

原因 - xpath locator //textarea[@id='FeedbackMessage'] 可以提供元素列表(即使我只有一个元素)。 但是 CSS 或 ID 选择器的使用总是首先找到元素。

所以我只需要指出元素的索引

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-06
    • 1970-01-01
    • 2014-08-16
    • 2019-06-22
    相关资源
    最近更新 更多