Ruby 如何使用Selenium 2和Firefox检查页面中的文本?

Ruby 如何使用Selenium 2和Firefox检查页面中的文本?,ruby,firefox,selenium-webdriver,Ruby,Firefox,Selenium Webdriver,我正在尝试使用Selenium 2和Firefox检查文本是否存在,但似乎找不到要使用的方法。我试着使用的方法似乎是每个人都说的工作,但不会为我工作。我得到返回的错误: NoMethodError:Selenium::WebDriver::Driver:0x1017232e0浏览器=:firefox的未定义方法“is#text_present” 如何使用Selenium 2和Firefox检查页面中的文本 当我尝试此堆栈溢出选项“”时,它对我不起作用,我相信它不起作用,因为我使用的是Ruby而不

我正在尝试使用Selenium 2和Firefox检查文本是否存在,但似乎找不到要使用的方法。我试着使用的方法似乎是每个人都说的工作,但不会为我工作。我得到返回的错误:

NoMethodError:Selenium::WebDriver::Driver:0x1017232e0浏览器=:firefox的未定义方法“is#text_present”

如何使用Selenium 2和Firefox检查页面中的文本


当我尝试此堆栈溢出选项“”时,它对我不起作用,我相信它不起作用,因为我使用的是Ruby而不是Java进行测试。

我不确定如何在Ruby中执行此操作,但您应该能够调用
getPageSource()
方法,并检查它是否包含您正在查找的文本字符串

如果在源代码中找不到文本,可能需要确定包含文本的确切元素,并对该元素调用
getText()
方法。例如,以下是元素的一些常见标识符:

driver.findElement(By.xpath("xpathstring")).getText()
driver.findElement(By.className("className")).getText()
driver.findElement(By.name("elementname")).getText()
driver.findElement(By.id("idname")).getText()

还有几个元素标识符,如果这些标识符不适用,您必须查阅文档。

您可以使用以下代码片段在JAVA中找到文本。。。 尝试对Ruby使用相同的方法:- driver.getPageSource()包含(“TEXTTOSEARCH”)


我在irb中对此进行了测试,因此您可能会遇到计时问题(可能必须先等待元素出现)。

如果您不知道哪个元素应该是您的文本,您可以使用:

driver.page_source.include? 'TEXT_TO_SEARCH'
否则,您可以按照Llelong和Thomp的建议使用:

driver.find_element(:id=>"ELEMENT_ID").text.include? 'TEXT_TO_SEARCH'
driver.find_element(:class=>"ELEMENT_CLASS").text.include? 'TEXT_TO_SEARCH'
这对我有用

driver.page_source.should_not include 'Login failed'

我尝试了这个,但无法让它对照源代码中的文本进行检查。你知道还有什么我可以尝试检查源代码中的文本吗?如果你在源代码中找不到文本,请发布一些其他解决方案,希望这有帮助:)。verifyTextPresent和verifyText不起作用?不,当我尝试使用这两种方法时,我会得到“NoMethodError:undefined method”。在文档中,您在哪里看到了这些有效的方法?Sean:这个链接有很多信息,但在Selenium 2中没有使用,只有Selenium 1。我似乎找不到有关Selenium 2的任何信息,特别是Ruby方法。这对于在没有类、id、名称、标题等的td中查找文本非常有效。Java Selenium 2
driver.page_source.should_not include 'Login failed'