Selenium Webdriver(RemoteWebDriver)无法单击网页上的任何位置

时间:2014-07-29 15:14:52

标签: ajax spring selenium-webdriver junit4 selenium-grid

我正在学习如何使用Selenium Webdriver(RemoteWebDriver),并且我在浏览过的网页上遇到了一些问题因为我无法点击任何地方而且我可以&#39 ; t找到网页上的任何元素。

我认为网页是使用Spring或者Ajax开发的,这就是为什么我无法点击任何内容。

这是网址:http://tinyurl.com/d9x453

例如,我甚至无法按下你在网页上看到的第一个按钮,我输了吗?

拜托,我真的很感激如果有人可以帮助我。

问候 -

3 个答案:

答案 0 :(得分:0)

我只需要等待javascript执行。您可以通过检查某个控件来执行该操作,如果它为null,则设置一些Thread.sleep(1000);

答案 1 :(得分:0)

同时尝试使用selenium.fireEvent(“id = search-bottom”,“blur”)。[注意没有测试代码]

您正在尝试使用哪种浏览器?

这是我想分享的代码:

private WebElement searchButton;

@Test
public void testYourSearchClick(){
     final FirefoxDriver ffDriver = XXYOURUtillyClassForDriver.createFirefoxDriver();
     try{
      ffDriver.get(System.getProperty("selenium.baseURL"));

    searchButton= ffDriver.findElement(By.xpath("//fieldset[@id='search-bottom']"));//or your   //button class
    searchButton.click();
}catch(SeleniumException e){
      e.printStackTrace();
    }
}

答案 2 :(得分:0)

您可能需要两次不同的等待。 A.等待任何脚本完成加载 B.等待您的页面完成加载

一个。如果你的应用程序使用jquery,那就相当简单了。取自here

public void WaitForAjax()
{
    while (true) // Handle timeout somewhere
    {
        var ajaxIsComplete = (bool)(driver as IJavaScriptExecutor).ExecuteScript("return jQuery.active == 0");
        if (ajaxIsComplete)
            break;
        Thread.Sleep(100);
    }
}

B中。等待你的页面完成加载。取自here

IWait<IWebDriver> wait = new OpenQA.Selenium.Support.UI.WebDriverWait(driver, TimeSpan.FromSeconds(30.00));

 wait.Until(driver1 => ((IJavaScriptExecutor)driver).ExecuteScript("return document.readyState").Equals("complete"));

在执行任何操作之前使用这两个。希望能解决