gpt4 book ai didi

jquery - 如何将 JQuery 定位器添加到 Selenium 远程控制

转载 作者:行者123 更新时间:2023-12-03 22:39:27 27 4
gpt4 key购买 nike

我一直很高兴地将 XPath 与 Selenium 一起使用,甚至将 getEval 与 Javascript 一起使用,但一位同事说,如果能够在 Selenium 中使用 JQuery 选择器不是很棒吗?

我用谷歌搜索过,但找不到任何对我有用的文章。任何人都可以提供有关如何使用 JQuery 语法从 selenium 中提取 doc 元素及其各自值的综合指南。

我正在使用 C# 编写我的 selenium 测试,因此如果有任何示例可以从 C# 的角度来看那就太好了。

谢谢

最佳答案

Karl Swedberg 写了一篇关于它的优秀博客文章,可以在 http://www.learningjquery.com/2009/04/better-stronger-safer-jquerify-bookmarklet 找到。

我们对此进行了调整,基本上在 Selenium Server jar 文件中我们修改了 RemoteRunner.html 以包含 jquery JavaScript(从 http://code.jquery.com/jquery-latest.min.js 获取):

        <script language="JavaScript" type="text/javascript" src="jquery.min.js"></script>
<script language="JavaScript" type="text/javascript">
function openDomViewer() {
var autFrame = document.getElementById('selenium_myiframe');
var autFrameDocument = new SeleniumFrame(autFrame).getDocument();
this.rootDocument = autFrameDocument;
var domViewer = window.open(getDocumentBase(document) + 'domviewer/domviewer.html');
return false;
}
</script>

然后为了在 Selenium 中使用它,我们添加位置策略:

mySelenium.addLocationStrategy("jquery",
"var loc = locator; " +
"var attr = null; " +
"var isattr = false; " +
"var inx = locator.lastIndexOf('@'); " +

"if (inx != -1){ " +
" loc = locator.substring(0, inx); " +
" attr = locator.substring(inx + 1); " +
" isattr = true; " +
"} " +

"var found = jQuery(inDocument).find(loc); " +
"if (found.length >= 1) { " +
" if (isattr) { " +
" return found[0].getAttribute(attr); " +
" } else { " +
" return found[0]; " +
" } " +
"} else { " +
" return null; " +
"}"
);

请注意,上面添加的定位器策略是在 Java 中实现的,但它只是一个字符串,因此应该可以在 C# 中轻松复制。JQuery 确实使事情变得更快,尤其是在 Internet Explorer 中!

要修改 jar,您可以使用 java 命令行工具来更新下载的 selenium 服务器 jar。在与名为“core”的 jar 同一级别创建一个文件夹,并将修改后的 RemoteRunner.html 和 jquery.min.js 文件放在那里。然后运行类似:

jar -uf selenium-server-standalone-2.0b3-APT.jar core\RemoteRunner.html
jar -uf selenium-server-standalone-2.0b3-APT.jar core\jquery.min.js

如果 jar 不在您的路径中,您可以使用完整路径,例如在 Windows 上您可以使用以下命令执行它:

"C:\Program Files\Java\jdk1.6.0_22\bin\jar.exe" <arguments>

关于jquery - 如何将 JQuery 定位器添加到 Selenium 远程控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2814007/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com