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

如何通过Selenium和Webdriver提高执行速度

甘祺
2023-03-14
问题内容

在不知道原因的情况下,脚本执行期间的测试速度非常慢。

这是我的脚本:

driver.Navigate().GoToUrl(url);       
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);
driver.FindElement(By.LinkText("Register Here")).Click();
new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(
    SeleniumExtras.WaitHelpers.ExpectedConditions.InvisibilityOfElementLocated(
        (By.XPath("//div[@class='loader-wrapper    ng-trigger ng-trigger-visibilityChanged ng-animating']"))));
driver.FindElement(By.XPath("(.//*[normalize-space(text()) and    normalize-space(.)='Organization    Type'])[2]/following::select[1]")).Click();
new SelectElement(driver.FindElement(By.XPath("(.//*[normalize-space(text())    and normalize-space(.)='Organization    Type'])[2]/following::select[1]"))).SelectByText("Hospital");
driver.FindElement(By.XPath("(.//*[normalize-space(text()) and    normalize-space(.)='Organization    Type'])[2]/following::button[1]")).Click();
new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(
    SeleniumExtras.WaitHelpers.ExpectedConditions.InvisibilityOfElementLocated(
        (By.XPath("//div[@class='loader-wrapper    ng-trigger ng-trigger-visibilityChanged ng-animating']"))));
driver.FindElement(By.XPath("(.//*[normalize-space(text()) and    normalize-space(.)='Phone    Number'])[1]/following::button[1]")).Click();
new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(
    SeleniumExtras.WaitHelpers.ExpectedConditions.InvisibilityOfElementLocated(
        (By.XPath("//div[@class='loader-wrapper    ng-trigger ng-trigger-visibilityChanged ng-animating']"))));

try
{
    Assert.AreEqual("Title is Required.", driver.FindElement(By.XPath("(.//*[normalize-space(text()) and    normalize-space(.)='Title'])[1]/following::span[1]")).Text);
}
catch (Exception e)
{
    verificationErrors.Append(e.Message);
}

有什么建议可以使测试更快吗?


问题答案:

一个使脚本/程序更快的简单步骤是:

  • 删除所有 ImplicitWait 实例为:
    • 您正在广泛使用 WebDriverWait显式等待

根据
显式和隐式等待
的文档:

警告
:请勿混合使用隐式和显式等待。这样做可能导致无法预测的等待时间。例如,将隐式等待设置为10秒,将显式等待设置为15秒,则可能导致20秒后发生超时。



 类似资料:
  • 问题内容: 我有一个脚本,该脚本必须查看超过250万条记录,以查找是否有未读电子邮件的成员。我想知道可以采取什么措施来提高其速度。目前,运行脚本最多可能需要8秒钟的时间: 如何使用索引使其更快? 问题答案: 该索引可能会有所帮助,但是请记住,这里没有免费的午餐(必须维护索引,因此这会影响您的插入/更新/删除工作量): 现在,您的查询可以说: 如果您根据查询更改其中一些标志的值,则可以尝试将这些列添

  • 问题内容: 我正在使用webdriver运行一些GUI测试。我直接从Selenium IDE导出了一些测试。在此测试中,由于加载了下拉菜单,我不得不降低IDE的运行速度。如何在Selenium Webdriver中减慢测试速度?我已经放了 而且它保持了高速运转。我知道sleep选项,但这不是我想要的,我想更改webdriver的默认执行速度。这是我的代码: 问题答案: 不要使用!

  • 问题内容: 我在尝试通过Selenium / Python自动化同时尝试填写网站上的两个字段时遇到一种罕见的问题。我的脚本填写了第一个字段,即 ORIGIN CITY 很好。我已经为第二个字段 DELIVERY ADDRESS 引入了 WebDriverWait 。 __ 我猜想,甚至在诱使服务员之前,“ 交付地址” 字段都可以 单击 。 但是 ORIGIN CITY 字段具有通过事件关联的 Ja

  • 问题内容: 尝试自动化门户网站http://demo.nopcommerce.com/时,无法在“电子设备”菜单上选择鼠标悬停,然后选择“相机和照片”子菜单。相同地使用以下脚本。 问题答案: 要 结束 菜单并选择 ,可以使用以下代码块:

  • 本文向大家介绍利用ctypes提高Python的执行速度,包括了利用ctypes提高Python的执行速度的使用技巧和注意事项,需要的朋友参考一下 前言 ctypes是Python的外部函数库。它提供了C兼容的数据类型,并且允许调用动态链接库/共享库中的函数。它可以将这些库包装起来给Python使用。这个引入C语言的接口可以帮助我们做很多事情,比如需要调用C代码的来提高性能的一些小型问题。通过它你

  • 问题内容: 我需要从应用程序委托启动视图控制器。 以这种方式,您将在视图控制器之间执行排序。 我有一个if语句,如果为true需要显示视图控制器,则在应用程序委托中。 如何从应用程序委托执行此操作? 问题答案: c_rath的答案基本上是正确的,但是您无需将视图控制器设为根视图控制器。实际上,即使从App Delegate,您也可以在导航堆栈的顶视图和任何其他视图控制器之间触发选择。例如,要推送情