当前位置: 首页 > 面试题库 >

Div标签既充当按钮,也充当动态按钮,例如删除,报告垃圾邮件等

沈皓君
2023-03-14
问题内容

这是一个实践测试用例,其中我必须登录gmail并单击动态Web表中的所有复选框,然后删除邮件。所以我做了下面的代码。

问题是当我检查删除按钮是否可用时。它返回true,但是当我尝试执行删除操作时,它正在显示ElementNotVisibleException。仅供参考,我能够选中所有复选框。唯一的问题是单击由标记制成的按钮。

//deleting mail by clicking on all checkbox     
int count = 1;     
List<WebElement> lst = driver.findElements(By.xpath(cbox));   
System.out.println("Total number of checkboxes are \t: " +    lst.size());    
for(int i=0;i<lst.size();i++){         
  WebElement wwe = lst.get(i);  
  wwe.click(); 
  driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS); 
  System.out.println("Checked on checkbox number \t: " + count); 
  count++; 
} 
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS); 
try{ 
  boolean flag = driver.findElement(By.xpath(delete)).isEnabled(); 
  if(flag){ 
    System.out.println("\nDelete button is enabled"); 
  }else{ 
    System.out.println("\nDelete button is not enabled"); 
  } 
  driver.findElement(By.xpath(delete)).click(); 
}catch(Throwable t){ 
  System.out.println("\nUnable to locate delete button"); 
  System.out.println("The exception occuring is \t: " + t); 
}

问题答案:

我已经尝试了以下方法,但效果很好。您只需添加足够的等待时间

    WebDriver driver = new FirefoxDriver();
    WebDriverWait wait = new WebDriverWait(driver, 60 /*timeOut in Seconds*/);
    driver.get("https://www.gmail.com");
    driver.findElement(By.id("Email")).sendKeys("xxx");
    driver.findElement(By.id("next")).click();
    wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("Passwd"))).sendKeys("xxx");
    driver.findElement(By.id("signIn")).click();
    String cbox = "//table[@class='F cf zt']//div[@class='T-Jo-auh']";
    String delete = "//div[@class='asa']/div[@class='ar9 T-I-J3 J-J5-Ji']";

    wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(cbox)));

    int count = 1;
    List<WebElement> lst = driver.findElements(By.xpath(cbox));
    System.out.println("Total number of checkboxes are \t: " + lst.size());
    for (int i = 0; i < lst.size(); i++) {
        WebElement wwe = lst.get(i);
        wwe.click();
        System.out.println("Checked on checkbox number \t: " + count);
        count++;
    }

    wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(delete))).click();
    try {
        WebElement deleteButton = driver.findElement(By.xpath(delete));
        boolean flag = deleteButton.isEnabled();
        if (flag) {
            System.out.println("\nDelete button is enabled");
        } else {
            System.out.println("\nDelete button is not enabled");
        }
        deleteButton.click();
    } catch (Throwable t) {
        System.out.println("\nUnable to locate delete button");
        System.out.println("The exception occuring is \t: " + t);
    }


 类似资料:
  • 我有两项活动。其中一个有碎片<从这个片段中,我可以转到另一个活动,但单击“主页”按钮,它会转到上一个活动,而不是转到上一个活动的片段。 图像

  • 问题内容: 如何在自己的应用程序中复制此功能? 我认为肯定有三种可能性… 捕获后退按钮的按下(如下所示),然后调用home按钮调用的任何方法。 捕获后退按钮按下,然后欺骗主页按钮。 捕获后退按钮的按下,然后启动主屏幕的活动,从而有效地将应用程序的活动置于停止状态。 编辑: 我知道有关服务,并且正在与此问题相关的应用程序中使用一种。该问题专门用于在按“后退”按钮时将活动置于停止状态而不是已破坏状态。

  • 问题内容: 我想创建一个类似于链接的HTML按钮。因此,当您单击按钮时,它将重定向到页面。我希望它尽可能地易于访问。 我也希望这样做,因此URL中没有任何多余的字符或参数。 我该如何实现? 根据到目前为止发布的答案,我目前正在这样做: 但这是在Safari和Internet Explorer中,它在URL的末尾添加了问号字符。我需要找到一种不会在URL末尾添加任何字符的解决方案。 还有其他两种解决

  • 我正在使用FAB按钮的个人资料图片,但它已经有一些填充。我使用以下代码创建FAB按钮。

  • 我有一个调查,有一堆问题,包括实际问题,一些是或否的单选按钮和一个评论框。我加了一张照片给你看。下面是填充问题后的html结构。 此信息通过web服务和jquery动态填充。看起来这些问题是动态填充的,每个问题都包含相同的类名、范围名等。有40多个问题被附加到div中。 我想做的是选择一个特定的问题并选中一个特定的单选按钮。然后,如果单击某个单选按钮,则会自动选中其他单选按钮。我相信Jquery是

  • 本文向大家介绍使用button当按钮和使用div当按钮有什么区别?相关面试题,主要包含被问及使用button当按钮和使用div当按钮有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 button具有默认样式 button在表单中具有默认的提交事件 button具有disabled属性可以禁用