我在使用 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/