使用硒无法单击按钮

时间:2018-11-02 18:43:51

标签: javascript html selenium selenium-webdriver

我正在使用Java上的“ Selenium”库来编写脚本来执行在线任务。在facebook,youtube等网站上,它运行良好。由于某些原因,在此网站中,它不是:Kingdoms.com。 我要单击的按钮具有以下代码行:

<a data-mellon-iframe-url="/authentication/login" id="loginButton" data-selector="#mellonModal" class="jqFenster"><button> <span>Entrar</span></button></a>

我为此编写的代码是:

 driver.findElement(By.id("loginButton")).click(); 

它不会单击。但是,如果我打印此行:

     System.out.println(driver.findElement(By.id("loginButton")).getText()); 

它显示“ Entrar”,因此脚本知道该按钮,但是由于某种原因它不会单击它。

有什么主意吗?我尝试在单击之前将脚本置于睡眠状态3秒钟,以防按钮未按时加载,但无法解决问题...

1 个答案:

答案 0 :(得分:1)

实际上,锚标签隐藏在按钮标签的后面。您需要单击锚标记内的按钮。我尝试使用CSS选择器,并且可以使用

driver.findElement(By.cssSelector("#loginButton button").click()

添加等待按钮,然后点击

    driver.get("https://www.kingdoms.com/");
    WebDriverWait wait = new WebDriverWait(driver, 60);
    WebElement loginBtn= wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#loginButton button")));
    loginBtn.click();
相关问题