我正在尝试使用PhantomJS实现用于Ruby的Selenium-Webdriver进行无头测试。
场景:测试登录身份验证
步骤:输入用户名>>输入密码>>点击登录>>验证错误消息
问题:
- '错误消息'元素不包含任何文本。 (该元素确实存在于页面加载中)
- Selenium-webdriver与FirefoxDriver完美运行,即显示错误消息并且测试步骤成功。
- 我也在最后一步捕捉截图。屏幕截图没有显示PhantomJS的错误消息。
醇>
Webdriver配置:
def initialize_driver(web_url)
@driver = Selenium::WebDriver.for :remote, url: "http://localhost:9134"
@wait = Selenium::WebDriver::Wait.new(timeout:10)
@driver.manage.window.maximize
@driver.get "#{web_url}"
end
PhantomJS配置:(PhantomJS收听端口9134)
$ phantomjs --webdriver=9134
脚本:
// Find Function
def find hash
@wait.until { @driver.find_element hash }
@driver.find_element hash
end
// expected_value = "Invalid username or password"
// Asserting function
element = find(:id => web_element.identifier_value)
if !(element.text.eql? expected_value) then
raise "\nAsserting - #{expected_value} failed\nFound: '#{element.text}', Expecting: '#{expected_value}'"
end
输出:
Asserting - Invalid username or password failed
Found: '', Expecting: 'Invalid username or password'