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

量角器的预期条件

林德辉
2023-03-14
问题内容

在Python中编写selenium测试时,我习惯于使用Explicit Waits来等待页面加载,或等待元素可见或可点击等:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.ID, "myDynamicElement"))
)

这里的关键概念是提供等待的 期望条件 ,有多种类型:

  • text_to_be_present_in_element_value
  • element_to_be_clickable
  • alert_is_present
  • 等等

与使用sleep带有硬编码时间间隔的s 相比,使用期望条件使代码更清洁,更可靠。

现在,我们正在将端到端测试基础架构转换protractor为很多。

是否有类似Expected Conditions的量角器,因为在python-seleniumjava- selenium?如果不是,显式等待in中条件的规范方法是什么protractor

我浏览了量角器文档,却一无所获。


问题答案:

一旦feat(expectedConditions)进入(可能是量角器1.7),就可以执行以下操作:

var EC = protractor.ExpectedConditions;
var e = element(by.id('xyz'));
browser.wait(EC.presenceOf(e), 10000);
expect(e.isPresent()).toBeTruthy();

但是请注意,如果您使用的是Angular应用程序,并且您的测试需要这些条件等待,则这是您所做工作的一个大警示,因为量角器应该本地处理等待。



 类似资料:
  • 问题内容: 有没有一种方法可以检查元素中是否有文本?我已经找到了,但是此函数检查指定的值,如果失败,则不会返回正确的错误。 我通过API填充元素,然后稍后将其加载,因此我希望浏览器等到元素中出现任何信息后再检查值是否正确。 另外,在EC发生故障时设法获得特定的错误消息也非常有帮助: 问题答案: 第三个参数是自定义错误消息: 要等待元素包含任何文本,可以编写 自定义期望条件 : 这是用法:

  • 问题内容: 我正在使用Selenium Protractor,希望从以下列表中选择所有元素,但其中一个包含文本“ Cat”,然后对其余元素执行一些操作。 是否有cssContainingText(或其他一些选择器)提供的选择器,我可以在其中提供条件以选择除包含文本“ Cat”的元素以外的所有元素? 问题答案: 您可以使用以下定位器策略创建一个 列表, 选择除包含文本 Cat 的元素以外的所有其他元

  • 当试图显式地等待一个元素使用预期条件变得可见时,Visual Studio警告我,它现在已经过时,很快就会从Selenium中删除。 实现相同结果的当前/新方法是什么?

  • 我是量角器的新手,在这里我尝试测试量角器的angularjs日期选择器。 我试图找到一种方法来做到这一点,而这篇文章是我唯一找到的东西,使用起来不太清楚 如果有人知道如何测试,请帮忙。 我需要的是选择今天的日期。 提前感谢:) < li >编辑- alecxe,这是我的日期选择器的屏幕截图。很抱歉,无法提供页面的链接。:(

  • 我使用的是角反应形式。在表单组的窗体控件中,我使用无法正常工作的正则表达式设置了验证器.模式,我不明白为什么。我已经验证了这个网站上的正则表达式 https://www.regextester.com/99144,以检查它,它工作正常 正则表达式(最少八个字符,至少一个大写字母,一个小写字母,一个数字和一个特殊字符) 这是表单组 因此,当我键入“World@20”时,它验证为真,但当我开始键入“W

  • 问题内容: 我正在使用Python / Selenium提交表单,然后让Web驱动程序通过使用类ID的预期条件来等待下一页的加载。 我的问题是可以显示两个页面,但是它们没有共享原始页面中没有的唯一元素(我可以找到)。一页的唯一类为,而另一页可能的类ID为。 我想使用一个等待,寻找OR 出现。 是否可以将两个预期条件合并为一个等待? 我正在寻找的基本想法,但显然行不通: 我真的只需要编程以等待下一页