我正在尝试使用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();
答案 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);