如何使用Selenium Webdriver验证文本,

时间:2012-08-14 16:55:56

标签: selenium webdriver selenium-webdriver

更新2:

这里发生了一些非常奇怪的事情......

与我之前的代码相比,我想知道它到底是什么.Text我找到了一些奇怪的东西第一行代码返回给我A11并且不知道它来自哪里< / p>

string _name = driver.FindElement(By.XPath("//*[@id='ctl00_ContentPlaceHolder1_EditControl1_gv']/tbody/tr[11]/td[3]")).Text;

//它的失败难怪......

Assert.IsTrue(_name.Equals("Selenium"));

但是它如何使用firefox?

更新:

使用C#

这是我正在使用的代码,它与Firefox一起工作正常,但不适用于IE8

Assert.IsTrue(driver.FindElement(By.XPath( “// * [@ id中= 'ctl00_ContentPlaceHolder1_EditControl1_gv'] / tbody的/ TR [11] / TD [3]”))。Text.Equals( “硒” ));

得到此错误:

 failed: Assert.IsTrue failed. 

3 个答案:

答案 0 :(得分:3)

在IE中呈现xpath的方式与在Firefox中的呈现方式不同。所以你的xpath真正可能在IE中捕获完全不同的文本。尝试获取driver.FindElement(By.XPath("//*[@id='ctl00_ContentPlaceHolder1_EditControl1_gv']/tbody/tr[11]/td[3]")).Text的输出(Console.WriteLine)以查看IE中的输出。

您可能必须为IE定义专用的xpath。

答案 1 :(得分:1)

假设您正在使用java,请尝试使用getText()

String foo = driver.findElement(By.xpath("//*[@id='ctl00_ContentPlaceHolder1_EditControl1_gv']/tbody/tr[11]/td[3]")).getText();

assertEquals(foo, "Selenium");

答案 2 :(得分:0)

Internet Explorer具有与几乎所有其他浏览器不同的XPath读数。 IE5及更高版本已经实现了[0]应该是第一个节点,但是大多数其他浏览器的第一个节点都是[1]。

您需要通过将节点减一来重写XPath表达式。