我的页面上有一张表格,其中应该包含某个元素。我可以通过表名(具有唯一的名称)来标识表,并且还可以轻松地标识元素。我想断言元素存在于表的row r,column c上。使用Selenium命令最干净的方法是什么?
r
c
备注:
div\div\table\div\tbody\td\tr[r]\td[c]
澄清:
如果单元格中的元素只是纯文本,那么我可以像这样检索该文本:
$this->getText("xpath=//table[@name='tableName']//tr[".$r."]//td[".$c."]"); (PHP)
$this->getText("xpath=//table[@name='tableName']//tr[".$r."]//td[".$c."]");
但是,如果单元格具有不只是纯文本的元素,该怎么办?如果元素是链接(link=anchor)或按钮(//button[@type='button'])或图像或更复杂的东西怎么办?
link=anchor
//button[@type='button']
我需要断言一个 元件 指定由该元素驻留的一个定位器在一个给定的小区。
听起来像你想要的isElementPresent(...locator of element...)。例如:
isElementPresent(...locator of element...)
$cell = "//table[@name='tableName']//tr[".$r."]/td[".$c."]"; $foundLink = $this->isElementPresent("xpath=".$cell."/a[.='".linktext."']"); $foundButton = $this->isElementPresent("xpath=".$cell."/button[@type='button']"); $foundImage = $this->isElementPresent("xpath=".$cell."/img[ends-with(@src='pretty-pony.gif')]");
isElementPresent()``true如果是,false则返回,否则返回。
isElementPresent()``true
false