javascript - Selenium Webdriver Java 无法处理 javascript :void(0), 打开新标签

标签 javascript java selenium-webdriver

我在使用 Selenium WebDriver 来自动执行某些任务时遇到问题。我使用 Java Selenium。

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
     <artifactId>selenium-java</artifactId>
    <version>2.47.1</version>
</dependency>

我正在我的网站上创建产品,经过积极验证后,我获得了产品 ID。然后我尝试使用创建的 ID 搜索创建的产品并打开产品链接。

<a role="textbox" href="javascript:void(0);" class="drilldown" name="Name" tabindex="-1">Name of product</a>

不幸的是,webdriver 打开“javascript:void(0);”新选项卡上的页面。当我尝试手动点击链接时,一切正常,产品页面打开。

当我试图在没有创建过程的情况下在我的网站上找到现有产品时,一切看起来都很好,并且 webdriver 的行为符合我的要求。我的网页非常复杂,很多内容是使用 javascript/ajax 等动态创建的。

我知道我没有提供很多细节。我正在努力解决这个问题。目前只有 WebDriver 重置和打开新 session 有帮助。

感谢您的回答,这是我第一个无法解决的严重问题。

最佳答案

您应该尝试使用 JavascriptExecutor 单击,因为它直接在 HTML DOM 上工作。随意根据您的方便在下面的代码中定位元素:

WebElement element=driver.findElement(By.xpath("Your Xpath"));
JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("arguments[0].click();", element);

关于javascript - Selenium Webdriver Java 无法处理 javascript :void(0), 打开新标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32862471/

相关文章:

javascript - 具有可变宽度的水平居中图像

java - 如何在 Android 中将 Firebase 子节点从一个节点移动到另一个节点?

java - 按字符串属性对自定义类型数组进行排序?

python - 在 python 中关闭 Firefox Web 驱动程序时出现意外警报

javascript - 类似 Photoshop、可嵌入的基于 Web 的图像编辑器?

javascript - 如何在 jquery 中停止 Ajax 调用

javascript - 使用 javascript 打开 shell

java - 如何将第一个单词移到最后?

python - 如何加速 python selenium find_elements?

Python Scrapy爬行在chrome中使用xpath元素选择和selenium花费太多时间