在Selenium扩展中使用glob到PHPUnit来识别元素

我正在使用Selenium扩展在
PHPUnit中编写Selenium测试用例.在测试中,我断言页面上存在某个链接.

例如,假设我想声明页面中存在以下链接:

<a href="http://www.stackoverflow.com">click here to enter stackoverflow</a>

为了断言链接存在,我需要识别它.通常我们使用它们的锚文本来识别链接:assertElementPresent(“link = click here to enter stackoverflow”).

我不想使用其整个锚文本来识别链接,而只是锚文本包含的子字符串“stackoverflow”.我可以使用glob和star运算符来执行此操作:assertElementPresent(“link = glob:* stackoverflow *”)

这在selenium IDE上非常有效,但是当在PHPUnit中编写等效代码时,断言失败了.这是PHPUnit中的等效代码行:

$this->assertTrue(isElementPresent("link=glob:*stackoverflow*"));

上面的断言失败,因为没有标识元素link = glob:* stackoverflow *.应该标识该元素,因为页面上存在一个链接,其锚文本包含字符串“stackoverflow”.

我的问题比我给出的简单示例更通用:我如何使用glob来识别Selenium扩展中的元素到PHPUnit?

最佳答案 我们在所有Selenium测试用例中使用XPath表达式,但我没有参与编写它们,也没有调查其他选项.如果你找不到让glob工作的方法,你总是可以依靠这个:

self::assertTrue($this->isElementPresent("//a[contains(.,'stackoverflow')]"));
点赞