【发布时间】:2016-08-24 08:09:30
【问题描述】:
感谢您查看我的查询。在一个网页上,有 200 多个链接,我确保所有链接都正常工作。获取href 值后这很容易,但问题是,“href”值不包含link,而是一个“javaScript 函数”,这是一个源代码
<a tabindex="8" title="Internal Crossload" target="_self" href="javascript:fnnHomePage('3' , 'WTMS_EXPRESS')"> - Internal Crossload </a>
JavaScript 函数:
<Script>
/*********************************************************************
Function Name : fnnHomePage
Input Parameter(s) : transferTypeId
Output Parameter(s) : None
**********************************************************************/
function fnnHomePage(transferTypeId ,moduleName) {
if (moduleName == "XXX_EXPRESS")
{
document.getElementById("transferTypeId").value=transferTypeId;
document.getElementById("gadgetType").value="XXX_EXPRESS";
document.getElementById("moduleName").value="XXX_EXPRESS";
document.forms[0].action="/XXX/getProposalHomePage.do?transferTypeId="+transferTypeId;
document.forms[0].submit();
}
if (moduleName == "CROSSLOAD")
{
document.getElementById("transferTypeId").value=transferTypeId;
document.getElementById("gadgetType").value="CROSSLOAD";
document.getElementById("moduleName").value="CROSSLOAD";
document.forms[0].action="/XXX/getCrossLoadHomePage.do?transferTypeId="+transferTypeId;
document.forms[0].submit();
}
}
</Script>
从上面的代码中,我如何获得一个“Link”并检查它在 selenium webdriver 中是否正常工作?有几个链接,每个链接都调用不同的“JavaScript 函数”。任何建议将不胜感激。谢谢。
【问题讨论】:
-
主要问题是 document.form.submit() 调用。没有简单的方法可以抑制这种情况。但我的 JavaScript 经验非常有限。如果您管理它,那么您可以遍历所有 href,单击它们并获取表单操作属性中的链接。
-
这是一个显示如何抑制它的链接 - stackoverflow.com/questions/31377500/… -- 检查 TJ Crowder 答案。我认为您需要使用 javascriptexecutor 将该函数注入脚本标签,然后调用它。也许它会起作用。
-
如何使用 webdriver 事件监听器 - public void beforeNavigateTo(String url, WebDriver driver) { System.out.println("Before navigating to: '" + url + "'"); }。如果您在其中添加 driver.navigate.back() 可能会起作用。
-
@Grasshopper 我不确定网页上会有多少链接,也不确定源代码中的 URL。所以这种方法不适用于我的情况。
-
您无需担心源中的 url 数量或 url 值。您只需要设置一个 webdriver 侦听器。 webdriver 框架将使用 javascript 自动生成的 url 调用此方法,然后在单击链接后导航到页面。您只需要使用 EventFiringWebDriver 并创建逻辑来维护您正在单击的链接。谷歌它或检查这个 - seleniumeasy.com/selenium-tutorials/…
标签: javascript selenium selenium-webdriver