一尘不染

使用JQuery选择和标识元素以在Selenium 2 Java API中使用它

selenium

这种情况:

  • 我使用Selenium 2的Java API打开和控制Firefox浏览器实例
  • 我通过JavaScript执行将jQuery脚本加载到页面
  • 然后,我使用jQuery表达式选择元素并遍历DOM树

现在是我的问题,我能以某种方式为找到的每个元素找到唯一的标识符吗?我的目标是通过使用Xpath或CSS选择器来获取与Selenium相同的元素。因此,如果我可以为jQuery中的元素生成明确的选择器,那将是最直接的方法。也欢迎其他想法。

我需要一种自动方法来标识jQuery中的元素,可以将其“转换”为Selenium元素/定位符。

/编辑

为了更清楚一点:

如果我在jQuery中选择了一个元素:

webDriver.executeScript("var element = $('#myDiv input.test')");

现在,我想要这样的东西:

WebElement webElement = webDriver.executeScript("return element");

那可能吗?


阅读 273

收藏
2020-06-26

共1个答案

一尘不染

我找到了解决方案,这很简单:

String jQuerySelector = "'#myDiv input.test'";
RenderedWebElement webElement = (RenderedWebElement) ((JavascriptExecutor) webDriver).executeScript("return $(" + jQuerySelector+ ").get(0);");

使用在Selenium中预先选择的jQuery中的元素也可以工作:

String jQuerySelector = "arguments[0]";
((JavascriptExecutor) webDriver).executeScript("return $(" + jQuerySelector+ ").doSomethingInJquery();", webElement);
2020-06-26