У меня есть таблица на моей странице, которая должна содержать определенный элемент. Я могу определить таблицу по ее имени (у нее есть уникальное имя), и я также могу легко идентифицировать элемент. Я хотел бы утверждать, что элемент присутствует в строке 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']
) или изображение или что-то более сложное?
Мне нужно утверждать, что элемент, указанный локатором этого элемента, находится в данной ячейке.
Похоже, вы хотите 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
если нет.
Вы можете попробовать getXpathCount Selenium
$ this -> ("xpath = // table [@ name = 'tableName'] // tr [". $ r. "] // td [". $ c. "] // TAG ");
Это вернет число совпадений, которое получает xpath. в вашем случае, ноль будет означать провал.