-2

在运行 selenium 自动化时,有些情况因为速度慢而失败,有些情况因为其他情况已经失败(例如,如果 selenium 单击链接,并且该链接显示文档列表,从该文档列表中,如果 selenium 执行某些操作, 如果初始链接无法加载文档列表意味着整个案例都失败了, 如果许多案例依赖于初始链接意味着所有案例都失败了, 但是如果 selenium 从点击执行相同的操作, 这些失败的案例效果很好不同的链接和获取文档列表),解决这个问题的任何想法

4

5 回答 5

1

您所描述的不是 Selenium 的限制,而只是您必须面对的测试自动化的常见挑战。

关于使测试用例失败的缓慢性。您基本上有两种策略可以使您的测试用例通过。第一个是减慢测试用例的执行速度(Selenium lib 中有相应的命令)。这不是很好,因为您的测试套件最终会很长。第二种方法是使用“等到元素出现”技术。使用该功能,您可以等到屏幕上显示一个按钮,然后再要求 selenium 单击它。

关于相互依赖的测试用例。在这里,您要做的是将大的和/或相互依赖的测试用例分解成小的独立的测试用例。例如,您可以让 TC1 测试单击链接时会显示文档列表。如果您想在 TC2 中对该文档列表执行一些操作,那么您应该找到一种方法让 TC2 在没有 Selenium 的情况下设置其初始配置。对于某些网页,它将是一个特定/自定义的 URL,可以驱动某些元素的显示。对于其他人来说,它可能是一个 cookie。您必须与您的开发团队讨论。

于 2013-06-19T07:08:00.923 回答
0

字典将限制定义为“能力有限的条件;缺陷或失败”,您的任何陈述都没有描述与 Selenium 相关的内容。

想到的是设计不佳的测试用例——例如,测试用例依赖性,在所有测试中都存在单点故障。再一次,如果设计很差,那么为什么会有人认为测试用例会真正快速地执行呢?

于 2015-05-24T15:09:10.220 回答
0

硒的局限性

  1. 无法处理弹出窗口。
  2. 无法自动化移动应用程序/Windows 应用程序。
  3. 无法自动化验证码。
  4. 硒提供的支持较少。
  5. 必须亲身体验 selenium 支持的任何一种语言。
  6. 无需使用 Junit、TestNg 和 Extentds 报告生成内置报告。
于 2017-07-22T17:13:14.347 回答
0

我假设您已经使用应用程序的最佳页面定位器仔细设计了所有测试用例。有一些简单的事情可以帮助您减少失败的次数。

例子:

  • 在开始执行之前清除缓存内存。

  • 如果在其余的执行过程中不需要 cookie,请尝试清除 cookie。

  • 使用等待(显式或隐式,甚至使用睡眠)。

  • 检查 selenium webdriver 版本和它支持的浏览器版本(很多时候这可能是失败的原因)。

这些是可以帮助减少故障的一些基本事项。

于 2015-10-27T10:18:59.580 回答
-1

文本执行也取决于您的应用程序的性能。如果它是硒,请确保您在脚本中包含以下代码,

package com.test;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class Wait {

    public static void main(String[] args) {
        WebDriver driver=new FirefoxDriver();
        driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
        driver.get("https://www.google.co.in");
        driver.manage().window().maximize();
        driver.findElement(By.id("gb_70")).click();
        driver.findElement(By.id("Email")).sendKeys("abc@gmail.com");
    }
}

此外,如果应用程序识别对象的速度很慢。然后使用 WeDriver 等待。它包括各种选项,如“elementToBeClickable”、“elementToBeSelected”、“presenceOfElementLocated”。

WebDriverWait wait = new WebDriverWait(driver, 10);

WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.id("gb_70")));       

element.click();

WebElement element1 = wait.until(ExpectedConditions.presenceOfElementLocated(By.id("Email")));  

element1.sendKeys("abc@gmail.com");
于 2015-08-21T10:43:52.320 回答