我試圖找到一個Selenium/PHP XPath來匹配包含多個元素(文本和表單元素)的表格行。Selenium,xpath匹配包含多個元素的表格行
實施例:
<table class="foo">
<tr>
<td>Car</td><td>123</td><td><input type="submit" name="s1" value="go"></td>
</tr>
</table>
這適用於一個單一的文本元素:
$this->isElementPresent("//table/tbody/tr/td[contains(text(), 'Car')]");
雖然這並不(省略/ TD定位器):
$this->isElementPresent("//table/tbody/tr[contains(text(), 'Car')]");
因此這顯然不適用於多個元素:
$this->isElementPresent("//table/tbody/tr[contains(text(), 'Car')][contains(text(), '123')]");
對於每行x列y,另一種方法是使用getTable("xpath=//table[@class='foo'].x.y")
。麻煩,但它的工作......主要是。它不會返回<input>
標籤!它會返回一個空字符串該小區:(
任何想法
雖然這工作,我不喜歡使用一個完整的架構,它的彈性較差(例如,如果另一個開發人員增加了一些在我的表之前的頁面上,xpath會中斷)。它也不能解決我匹配包含多個指定元素的一行的原始問題。 – 2010-10-29 13:11:20
@ foob.ar:這就是爲什麼我的判斷從'如果你知道你的模式'開始......你的問題是爲了使用文本()而你的問題是'任何想法?如果你知道如何進行概括,你可以修改它。你想'td'容器是不同的,或者它可能是相同的? – 2010-10-29 13:38:14