jab*_*ett 12 javascript selenium hashchange backbone.js
我正在尝试使用Selenium IDE测试我的Backbone.js Web应用程序.
Selenium可以打开我的测试用例的初始URL,只要它在一个新的浏览器窗口中 - 例如open /#/login- 但是当它试图打开后续URL时它会超时.
似乎Selenium正在侦听只在URL哈希发生更改时才触发的事件.
我想这会发生在你使用hashchange + Selenium时...
在Selenium IDE中,只需使用'storeEval'命令,例如:
Command = storeEval
Target = window.location.hash='/search/events/birthdays/1'
Run Code Online (Sandbox Code Playgroud)
storeEval运行分配给"target"的javascript片段.您可以做的是,有一个测试用例使用open(url)命令打开起始页面,其余的情况使用storeEval命令更改散列.
简短更新:我们放弃尝试使用 Selenium IDE 编写集成测试,而是使用Selenium WebDriver 的Selenium Python 绑定。
通过这种方法,我们可以导航到 URL,然后用于WebDriverWait检测 DOM 中的特定更改,例如
driver = webdriver.Firefox()
driver.get("/#/login")
WebDriverWait(driver, 10).until(
lambda driver: driver.find_element_by_css_selector("form.login").is_displayed())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3699 次 |
| 最近记录: |