登录后使用selenium webdriver单击图像按钮

时间:2017-01-06 13:03:20

标签: javascript java selenium selenium-webdriver automation

我正在尝试使用selenium-webdriver自动化登录页面,而我正在使用IE作为浏览器。我遇到的问题是登录后我无法选择图像按钮。我甚至在输入登录凭据后引入了时间延迟,但脚本仍然运行且按钮没有被点击。 P.S我已经评论了我尝试的所有方法。

我使用的代码是:

    System.setProperty("webdriver.ie.driver",
            "C:/Program Files/IEDriverServer/IEDriverServer.exe");

    WebDriver driver=new InternetExplorerDriver();
    driver.manage().window().maximize();

    driver.navigate().to("website name");

    driver.findElement(By.id("userid")).sendKeys("username");
    driver.findElement(By.id("password")).sendKeys("password");
    //driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
    driver.findElement(By.id("submitButton")).click();
    Thread.sleep(5000);
    //driver.findElement(By.id("imgBtnAdd")).click();
    //driver.findElement(By.cssSelector("a[href='Images/Go.gif']")).click(); 
    driver.findElement(By.xpath("//img[@ src='Images/Go.gif']")).click();
    //System.out.println("Manual Click of Ok button");
    //By xpath = By.xpath("//button[@name='imgBtnAdd'][@type='image'][contains(image(),'Images/Go.gif')]");
    //WebElement myDynamicElement = (new WebDriverWait(driver, 10))
      //.until(ExpectedConditions.presenceOfElementLocated(xpath));
    //myDynamicElement.click();

    driver.findElement(By.cssSelector("input[id='rblRoleGroup_4']")).click();

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

    //WebElement element = driver.findElement(By.id("imgBtnAdd"));
    //Thread.sleep(5000);
    //JavascriptExecutor executor = (JavascriptExecutor)driver;
    //executor.executeScript("arguments[0].click();", element);        
    //driver.close();

3 个答案:

答案 0 :(得分:0)

您可以尝试使用sendkkeys:

driver.findElement(By.id("imgBtnAdd")).sendKeys(Keys.ENTER);

如果图像在新窗口中,请尝试:

for(String winHandle : driver.getWindowHandles())

{

driver.switchTo().window(winHandle);

}

答案 1 :(得分:0)

查看代码后,我注意到您的xpath错误。

不使用<img>代码,而是使用<input>代码。

driver.findElement(By.xpath("//input[@src='Images/Go.gif']")).click();

xpath的说明: - 使用src标记的<input>属性。

答案 2 :(得分:0)

尝试使用JavascriptExecuter点击可能对您有所帮助 -

      WebElement element =  driver.findElement(By.id("imgBtnAdd"));

      JavascriptExecutor js = (JavascriptExecutor)driver;
      js.executeScript("arguments[0].click();", element);