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

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

钱浩荡
2023-03-14
问题内容

这种情况:

  • 我使用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");

那可能吗?


问题答案:

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

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);


 类似资料:
  • 问题内容: HTML select元素的选项是否可以包含HTML标签? 例如,给出以下代码: 我想要实际以HTML呈现的选项。在此应用程序中,我可以使用HTML,CSS,JavaScript(包括jQuery)。HTML本身是通过Django(django.form.fields.select)呈现的。 问题答案: 不,你不能这样做。标签不能包含任何其他标签。

  • 如何只选择父级而不选择子级? List summaryLinks=summary.findelements(by.xpath(“”));

  • 问题内容: 在我们的应用程序中,我们解析一个网页并将其加载到iFrame中的另一个页面中。该加载页面中的所有元素都有其令牌标识。我需要通过那些tokenid -s选择元素。意思是-我单击主页上的元素,然后在iFrame中选择页面中的相应元素。在jQuery的帮助下,我通过以下方式进行操作: 但是,通过此功能,我只能选择当前页面中的元素,而不能选择iFrame中的元素。谁能告诉我如何在加载的iFra

  • 问题内容: HTML select元素的选项是否可以包含HTML标签? 例如,给出以下代码: 我想要实际以HTML呈现的选项。在此应用程序中,我可以使用HTML,CSS,JavaScript(包括jQuery)。HTML本身是通过Django(django.form.fields.select)呈现的。 问题答案: 不,你不能这样做。标签不能包含任何其他标签。

  • 本文向大家介绍Jsoup 使用CSS选择器选择元素,包括了Jsoup 使用CSS选择器选择元素的使用技巧和注意事项,需要的朋友参考一下 示例 您可以在此处找到支持的选择器的详细概述。

  • 问题内容: 我有这样的 我想引用元素“ x”。我尝试了几种方法,但找不到解决方案。 问题答案: document.getElementById(‘myframe1’).contentWindow.document.getElementById(‘x’) 所有浏览器(包括较旧版本的IE)都支持该功能。 请注意,如果的是从另一个域,您将无法访问其内容,由于同源策略。