使用 Selenium-rc 获取确认窗口
我正在运行一个 selenium 服务器(v.2.0b2)并编写一个 python 脚本来在我的 web 应用程序上运行测试套件。
from selenium import webdriver
import selenium
selenium = selenium.selenium('127.0.0.1', 3333, '*firefox', 'http://localhost/')
selenium.start()
profile = webdriver.FirefoxProfile('selenium')
browser = webdriver.Firefox(profile)
browser.get('http://localhost:8080/index.html?no_auto_login=1')
我有一个登录按钮,会弹出一个确认对话框,但在弹出之前需要在服务器之间往返一次。
submit_button = browser.find_element_by_css_selector('#btnSubmit')
submit_button.click()
alert = browser.switch_to_alert()
assert alert.text == 'Server Login Error...'
alert.accept()
注释掉submit_button.click()之后的项目,然后调用 selenium.is_confirmation_present() 返回 false
我如何等待确认框可见?为什么 selenium.is_confirmation_present() 不返回 true?
I'm running a selenium server (v.2.0b2) and writing a python script to run a test suite on my webapp.
from selenium import webdriver
import selenium
selenium = selenium.selenium('127.0.0.1', 3333, '*firefox', 'http://localhost/')
selenium.start()
profile = webdriver.FirefoxProfile('selenium')
browser = webdriver.Firefox(profile)
browser.get('http://localhost:8080/index.html?no_auto_login=1')
I have a login button that pops up a confirmation dialog, but it takes a round trip the the server and back before it pops up.
submit_button = browser.find_element_by_css_selector('#btnSubmit')
submit_button.click()
alert = browser.switch_to_alert()
assert alert.text == 'Server Login Error...'
alert.accept()
commenting out the items after submit_button.click() and then calling
selenium.is_confirmation_present()
returns false
How can I wait for the confirmation box to be visible? Why doesn't selenium.is_confirmation_present() return true?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我没有使用过 Selenium 2.0(网络驱动程序),但建议您使用 Thread.sleep(10) 进行测试。如果这有效,那么这意味着您的情况需要有条件等待。
I have not worked with Selenium 2.0 (web driver) but would suggest you to test this with Thread.sleep(10). And if that works then it means conditional wait in required in your case.