在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 相比,使用期望条件使代码更清洁,更可靠。
sleep
现在,我们正在将端到端测试基础架构转换protractor为很多。
protractor
是否有类似Expected Conditions的量角器,因为在python-selenium或 java- selenium?如果不是,显式等待in中条件的规范方法是什么protractor?
Expected Conditions
python-selenium
java- selenium
我浏览了量角器文档,却一无所获。
一旦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应用程序,并且您的测试需要这些条件等待,则这是您所做工作的一个大警示,因为量角器应该本地处理等待。