java中的selenium无法点击href =“javascript:void;”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中的selenium无法点击href =“javascript:void;”相关的知识,希望对你有一定的参考价值。

这是我正在处理的一段代码。我正在尝试点击子菜单。

<ul class="accordion">
     <li id="one1" class="files">
       <a href="#one1">Accounts</a>
       <ul class="sub-menu">
       <li>

               <a href="#one1" onClick="loadTabv2('accounts/LoadAccountGroupMaster',
                  'Account Group','accounts_account_group');"><img src="layouts/static/image/micons/account_group.png">Account Group</a>

               <a href="#one1" onClick="loadTabv2('accounts/AccountingPeriod',
                  'Accounting Period','account_accounting_period');"><img src="layouts/static/image/micons/accounting_period.png">Accounting Period</a>

                   <a href="javascript:void(0);" onClick="loadTab('accounts/LoadAccountMaster',
                 'Account Master','account_account_master');"> <img src="layouts/static/image/micons/account_master.png">Account Master</a>

                   <a href="javascript:void(0);" onClick="loadTab('accounts/AccountsDashboard',
                 'Accounts Dashboard','accounts_dashboard');"> <img src="layouts/static/image/micons/accounts_dashboard.png">Accounts Dashboard</a>

                   <a href="javascript:void(0);" onClick="loadTab('accounts/AccountSettings',
                 'Account Settings','accounts_account_settings');"> <img src="layouts/static/image/micons/account_settings.png">Account Settings</a>

我正在尝试点击帐户组和帐户信息中心。他们都没有收到点击。这个代码已经完成但失败了。

List<WebElement> submenus=driver.findElements(By.xpath("//li[@id='one1']//li//a"));
 for (WebElement submenu: submenus) {
System.out.println("values of each submodule : 
"+submenu.getAttribute("innerhtml"));
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
if (submenu.getAttribute("innerHTML").contains("Accounts Dashboard")) {
  submenu.click();
  break;
}
答案
  1. 单击Accounts Dashboard Accounts Dashboard的href中的javascript:void(0);返回undefined。当试图点击这样的链接时,执行单击并且没有获得方法返回值。这给人的印象是不执行单击。使用 JavascriptExecutor jsexec = (JavascriptExecutor) driver; jsexec.executeScript("arguments[0].click();", submenu); 而不是submenu.click();
  2. 单击“帐户组” Selenium单击此链接并将href#one1附加到URL,确认已执行单击。

以上是关于java中的selenium无法点击href =“javascript:void;”的主要内容,如果未能解决你的问题,请参考以下文章

Selenium Python - 无法点击元素

如何使用 selenium-java 点击 href 链接

Selenium Webdriver (Java) 无法点击 AJAX 按钮

点击 Selenium + Python 无法滚动到视图中的链接的方式是啥?

为啥不可点击,但 execute_script 有意义。 href 中的 Python、Selenium、JS [重复]

检查 Selenium Java 中的元素是不是可点击