加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 16:13:09 所属栏目:PHP教程 来源:网络整理
导读:我正在使用Selenium扩展在 PHPUnit中编写Selenium测试用例.在测试中,我断言页面上存在某个链接. 例如,假设我想声明页面中存在以下链接: a href="http://www.stackoverflow.com"click here to enter stackoverflow/a 为了断言链接存在,我需要识别它.通常我们
我正在使用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')]"));

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读