通过浏览器运行Javascript命令

时间:2014-07-02 23:56:21

标签: javascript selenium xpath

通过Java,我试图点击jsp网页上的链接。

但是,当我尝试通过xpath和其他方式单击链接时,它无效... 。driver.findElement(By.partialLinkText( “会员”))点击(); driver.findElement(By.xpath( “// A [包含(文本(), '会员')”))点击()。 driver.findElement(By.xpath( “/ HTML /体/格[1] /表/ tbody的/ TR / TD [1] / UL〔2〕/ LI / A”))点击();

当我突出显示链接文字时,我看到了这一点; 的javascript:SENDTO( '?/ MP /安全/代理/ MemberSelect.do事件= FirstTime')

有没有办法让webdriver只运行此命令,而不是试图点击链接?

任何帮助表示赞赏!我离开了联盟,我只想努力实现一些简单的事情......

2 个答案:

答案 0 :(得分:0)

这是一个可以尝试的Jquery表达式。 try(JscriptExecutor(driver))。ExecuteScript(“$(”a:contains(Member)“)。click();”); 要了解有关如何在自动化代码中使用jQuery的更多信息,请参阅链接:http://yuvarajatcts.blogspot.com/2014/07/coded-ui-jquery-selectors.html

答案 1 :(得分:0)

根据我的经验,使用XPath表示法时很难让Selenium / WebDriver表现出来。我发现我可以使用CSS选择器编写更稳定和可读的测试。

driver.findElement(By.cssSelector('table ul a')).click();

理想情况下,您可以为元素指定特定的类名称或ID,以便您更少依赖文档结构来查找元素。

如果你幸运的话,你甚至可以使用链接的href作为标识符:

driver.findElement(By.cssSelector('a[href*="thingy"]')).click();

...匹配具有以下HTML的链接,例如:

<a href="http://example.com/stuff/thingy/foo/bar">Member Link</a>