我的页面上有一个表,它应该包含某个元素。我可以通过名称识别表(它有一个唯一的名称),我也可以轻松识别该元素。我想断言该元素存在于表的行r
,列c
上。使用Selenium命令最干净的方法是什么?
说明:
div\div\table\div\tbody\td\tr[r]\td[c]
)。 澄清:
如果单元格中的元素只是纯文本,那么我可以像这样检索该文本:
$this->getText("xpath=//table[@name='tableName']//tr[".$r."]//td[".$c."]");
(PHP)
但是如果单元格中的元素不仅仅是纯文本呢?如果元素是链接(link=anchor
)或按钮(//button[@type='button']
)或图像或更复杂的内容,该怎么办?
我需要声明由该元素的定位器指定的元素驻留在给定的单元格中。
答案 0 :(得分:0)
您可以尝试使用Selenium的getXpathCount
$这 - &GT( “的xpath = //表[@名= '表名'] // TR [”。$ R “] // TD [”。$ C“] // <强> TAG 强>“);
这将返回xpath获得的匹配数。在你的情况下,零意味着失败。
答案 1 :(得分:0)
听起来像你想要的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')]");
如果是,则{p> isElementPresent()
会返回true
,如果没有,则返回false
。