使用Selenium-Webdriver和PhantomJS处理Web元素更新

时间:2014-02-13 08:05:29

标签: ruby selenium phantomjs

我正在尝试使用PhantomJS实现用于Ruby的Selenium-Webdriver进行无头测试。

场景:测试登录身份验证

步骤:输入用户名>>输入密码>>点击登录>>验证错误消息

问题:

  
      
  1. '错误消息'元素不包含任何文本。 (该元素确实存在于页面加载中)
  2.   
  3. Selenium-webdriver与FirefoxDriver完美运行,即显示错误消息并且测试步骤成功。
  4.   
  5. 我也在最后一步捕捉截图。屏幕截图没有显示PhantomJS的错误消息。
  6.   

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'

0 个答案:

没有答案