【问题标题】:How Can we test The presence of Image Zoom in a E-commerce website我们如何测试电子商务网站中 Image Zoom 的存在
【发布时间】:2014-11-16 18:21:16
【问题描述】:

如果您访问印度电子商务网站 Flipkart,您会在任何列出的商品中找到缩放图像功能。只要鼠标悬停在文章上方,此功能就会打开文章的缩放图像。

我的问题是——我们能否确定,图片实际上在网页中被放大了。

我的意思是,如果用户将鼠标悬停在文章图像上,缩放实际上已经打开并显示文章的缩放图像。

我们可以使用 Selenium Webdriver 自动化这种场景吗?

【问题讨论】:

    标签: testing selenium selenium-webdriver automated-tests


    【解决方案1】:

    当您将鼠标悬停在 .productImage.current 上时,.productImageZoom 将从 display:none 设置为 display: block。像这样的东西应该可以工作:

    Actions action = new Actions(driver);
    WebElement elem = driver.findElement(By.cssSelector(".productImage.current"));
    action.moveToElement(elem);
    action.perform();
    this.sleep(2);  // This may not be necessary
    
    if (driver.findElement(By.cssSelector(".productImageZoom")).isVisible())
    {
        // success!
    }
    

    【讨论】:

      【解决方案2】:

      这是一个工作代码:

      public class TestingECommerce {
      
          public static void main(String args[]){
      
              WebDriver driver = new FirefoxDriver();
      
              driver.manage().window().maximize();
              driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
      
              //Navigate to a shoe's page in flipkart
              driver.get("http://www.flipkart.com/fila-scroll-sneakers/p/itmey3f8ssgrdgdh?pid=SHOEY3F8HUHFVYJ9&srno=b_1&ref=2918f415-8924-46e9-8b99-993850a8cb48");
      
              //Hovering over image
              Actions act = new Actions(driver);
              act.moveToElement(driver.findElement(By.xpath("//div[@class='imgWrapper']/img[1]"))).build().perform();
      
              //Waiting 10 seconds for the zoomed element to be visible
              WebElement ele_zoom = driver.findElement(By.xpath("//div[@class='productImageZoom']"));
              WebDriverWait wait = new WebDriverWait(driver, 10);
              wait.until(ExpectedConditions.visibilityOf(ele_zoom));
      
              if(ele_zoom.isDisplayed())
                  System.out.println("The zoom is visible");  
              else
                  System.err.println("The zoom isn't visible!!");
          }
         }
      

      上面的代码导航到 Flipkart 网站中的鞋子页面。然后它悬停在图像上,这导致图像缩放视图的可见性。它会等待 10 秒,直到检测到元素的缩放视图的可见性,然后断言该元素的缩放视图是否正在显示。

      【讨论】:

      • 乐于助人.. :)
      【解决方案3】:

      除了上面的答案,你当然可以通过获取 driver.getAttribute("src") 或类似的东西来检查所需元素的更多属性..

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-03-13
        • 2011-06-11
        • 1970-01-01
        • 2023-03-28
        • 1970-01-01
        • 1970-01-01
        • 2012-02-16
        相关资源
        最近更新 更多