【问题标题】:How to check image is visible (Webdriver)如何检查图像是否可见(Webdriver)
【发布时间】:2016-02-01 03:07:34
【问题描述】:

我有一个图像在一定宽度尺寸后变得不可见。我不确定如何使用 selenium 进行测试。

<img id="removeimg" class="col-md-5" src="images/abc-image.png" alt="abc"> 

以下是我的css。

@media only screen and (max-width: 991px) {
#removeimg  {
    display: none;
}

为此,我有以下测试 java。但我不确定这是不是正确的做法。

@BeforeClass
public static void setUp() throws Exception {
    driver = new RemoteWebDriver(new URL(System.getProperty("webDriverUrl")), DesiredCapabilities.firefox());
    driver.manage().window().setSize(new Dimension(991, 1100));
    baseUrl = System.getProperty("baseUrl");
    driver.get(baseUrl + "/");
}

@Test
public void testImageNotPresent(){
    driver.findElements(By.id("removeimg");
  }

更新

我已向我的测试 java 添加了更新。

@Test
public void testImageNotPresent(){
    driver.findElement(By.id("removeimg")).isDisplayed();
    assertFalse(isElementPresent(By.id("removeimg")));
}

但这在运行时会失败。如果图片没有显示在页面上,我希望它通过测试,但如果显示失败。

【问题讨论】:

    标签: java html css selenium


    【解决方案1】:

    只需将setSize()isDisplayed() 组合起来即可:

    WebElement img = driver.findElement(By.id("removeimg"));
    
    driver.manage().window().setSize(new Dimension(991, 1100));
    System.out.println(img.isDisplayed()); 
    
    driver.manage().window().setSize(new Dimension(800, 600));
    System.out.println(img.isDisplayed()); 
    

    如果您对 selenium webdriver 如何确定可见性感兴趣,请访问此规范:

    【讨论】:

    • public void testImageNotPresent(){ driver.findElement(By.id("removeimg")).isDisplayed();这就是我将其更改为的内容。测试通过了,但这是正确的方法吗?另外我如何测试图像何时不可见?
    • @MichelleAshwini isDisplayed() 方法根据元素的可见性返回真或假。如果应该显示则断言为真,否则为假。
    • 我添加了一个新行:driver.findElement(By.id("removeimg")).isDisplayed(); assertFalse(isElementPresent(By.id("removeimg")));但这在测试时会失败
    • @MichelleAshwini isElementPresent 是什么?您可以使用assertTrue(driver.findElement(By.id("removeimg")).isDisplayed())assertFalse(driver.findElement(By.id("removeimg")).isDisplayed())
    【解决方案2】:

    设法让它工作。

    @Test
    public void testImageNotPresent(){
        WebElement img = driver.findElement(By.id("removeimg"));
        assertEquals("none", img.getCssValue("display"));
    }
    

    【讨论】:

    • 不要检查 display 样式 - 这不是确定元素可见性的可靠方法。
    • @alecxe 为什么?我还是新手。
    猜你喜欢
    • 2014-04-03
    • 2011-02-08
    • 1970-01-01
    • 2019-06-10
    • 2020-08-06
    • 1970-01-01
    • 2012-06-11
    • 2012-10-12
    • 1970-01-01
    相关资源
    最近更新 更多