Javascript 登录后使用selenium webdriver单击图像按钮
我正在尝试使用SeleniumWebDriver自动化登录页面,并使用IE作为浏览器。我遇到的问题是,登录后,我无法选择图像按钮。我甚至在输入登录凭据后引入了时间延迟,脚本仍在运行,按钮未被单击。另外,我也评论了我尝试过的所有方法 我使用的代码是:Javascript 登录后使用selenium webdriver单击图像按钮,javascript,java,selenium,selenium-webdriver,automation,Javascript,Java,Selenium,Selenium Webdriver,Automation,我正在尝试使用SeleniumWebDriver自动化登录页面,并使用IE作为浏览器。我遇到的问题是,登录后,我无法选择图像按钮。我甚至在输入登录凭据后引入了时间延迟,脚本仍在运行,按钮未被单击。另外,我也评论了我尝试过的所有方法 我使用的代码是: System.setProperty("webdriver.ie.driver", "C:/Program Files/IEDriverServer/IEDriverServer.exe"); WebDriv
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();
您可以尝试sendkkeys:
driver.findElement(By.id("imgBtnAdd")).sendKeys(Keys.ENTER);
如果图像位于新窗口中,请尝试以下操作:
for(String winHandle : driver.getWindowHandles())
{
driver.switchTo().window(winHandle);
}
查看您的代码后,我注意到您的
xpath
是错误的
不要使用
标记的属性。尝试单击使用JavascriptExecuter
可能会对您有所帮助-
driver.findElement(By.xpath("//input[@src='Images/Go.gif']")).click();
在定义图像的位置发布网页源代码HTML/JavaScript片段可能会有所帮助。@Karthik很可能它将转到一个新的选项卡或窗口,因此您需要告诉您的驱动程序切换到该选项卡或窗口-按钮的HTML源代码@ProgrammersBlock@CodingYoshi,你的意思是我必须提供下一个选项卡或窗口的url吗?你收到的错误消息是什么?谢谢你的代码,但它仍然没有被点击该按钮类似于“撰写电子邮件”按钮,它在我们登录Gmail hanks进行回复后出现,我也尝试过,但单击按钮时仍然有问题,您没有在标记中提到任何单击事件。这就是它不可点击的原因。尝试像这样用onclick属性更新标记,然后执行上述代码。它肯定会工作得很好。:)感谢您的脚本,但是如果不手动单击鼠标,则无法单击按钮
WebElement element = driver.findElement(By.id("imgBtnAdd"));
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("arguments[0].click();", element);