我有一个Web应用程序,我按下提交按钮,直到桌面上的数据可用。当我的数据不可用时,然后提交按钮隐藏。所以我们可以获得逻辑,直到提交按钮隐藏我们将点击。当按钮,而不是我们可以在成功消息中显示并加载下一个浏览器Url。
for (k=0;k>30;k++) {
try {
driver.findElement(By.xpath(".//*[@id='content']/input")).click();
driver.switchTo().alert();
driver.switchTo().alert().accept();
Thread.sleep(20000);
} catch (org.openqa.selenium.NoSuchElementException e){
System.out.println(""+location+" Done");
}
}
此处driver.findElement(By.xpath(".//*[@id='content']/input")).click();
此行单击我的提交按钮。提交后,一个浏览器警报显示这就是为什么我接受这个。在这个循环for (k=0;k>30;k++)
盲目地我采取30 ..是否有任何逻辑或任何建议如何管理这个......
答案 0 :(得分:1)
只需与*.ashx
核对即可检查元素是否显示
isDisplayed()
答案 1 :(得分:0)
您可以使用以下方式使用元素的存在: -
By by = By.xpath(".//*[@id='content']/input");
List<WebElement> buttons = driver.findElement(by);
while(buttons !=null && !buttons.isEmpty()) {
WebElement yourButton = buttons.get(0); // assuming only and the first element in the list
yourButton.click();
driver.switchTo().alert();
driver.switchTo().alert().accept(); // ideally this should be sufficient
Thread.sleep(20000);
buttons = driver.findElement(by);
}
答案 2 :(得分:0)
以下代码可以为您提供帮助。
try {
while(driver.findElement(By.xpath(".//*[@id='content']/input")).isDisplayed()){
driver.findElement(By.xpath(".//*[@id='content']/input")).click();
driver.switchTo().alert();
driver.switchTo().alert().accept();
Thread.sleep(20000);
}
}
catch (org.openqa.selenium.NoSuchElementException e){
System.out.println(""+location+" Done");
}
使用findElements的另一种解决方案,
while(driver.findElements(By.xpath(".//*[@id='content']/input")).size()>0)
{
try {
driver.findElement(By.xpath(".//*[@id='content']/input")).click();
driver.switchTo().alert();
driver.switchTo().alert().accept();
Thread.sleep(20000);
}
catch (org.openqa.selenium.NoSuchElementException e){
System.out.println(""+location+" Done");
}
}
答案 3 :(得分:0)
实施以下逻辑:
public void test() throws InterruptedException
{
WebElement button = driver.findElement(By.xpath(".//*[@id='content']/input"));
while(checkButton(button))
{
button.click();
driver.switchTo().alert().accept();
Thread.sleep(1000);
}
}
public static boolean checkButton(WebElement element)
{
if(element.isDisplayed())
return true;
else
return false;
}
只有当您的元素可以进一步执行操作时,它才会单击,直到您的元素变为隐形。希望这会有所帮助。
答案 4 :(得分:0)
下面我解决了我的问题..希望它会帮助下一位访客
do
{
try {
driver.findElement(By.xpath(".//*[@name='yt1']")).click();
driver.switchTo().alert();
driver.switchTo().alert().accept();
Thread.sleep(20000);
driver.switchTo().alert();
driver.switchTo().alert().accept();
Thread.sleep(2000);
driver.navigate().refresh();
}
catch (org.openqa.selenium.NoSuchElementException e){
System.out.println(""+location+" Done");
}
}
while ((driver.findElements(By.xpath(".//*[@class='google_data_save']")).size()>0));