проблема: добраться до элемента с помощью CSS-селектора атрибута 'style' с селеном - PullRequest
2 голосов
/ 05 июня 2011

У меня проблемы с получением элемента с помощью атрибута 'style' с селеном.Проблема в том, что с помощью селекторов xpath я могу сделать это:

int(self.selenium.get_element_index("//div[contains(@class,'%s')][contains(@style,'%s')][contains(@style,'%s')]"%(pin_class_name,map_object_position[0],map_object_position[1])))

^ Это возвращает результат

Но когда я пытаюсь добраться до элемента с помощью селекторов css, кажется, что такойэлемент не найден:

int(self.selenium.get_element_index("css=div[class*='%s'][style*='%s'][style*='%s']"%(pin_class_name,map_object_position[0],map_object_position[1])))

Кто-нибудь сталкивался с этой проблемой или знает, возможно ли перемещаться с помощью атрибута 'style' с помощью селекторов css.Я описываю эту проблему, потому что я хочу провести сравнение с использованием обоих методов (я подозреваю, что использование xpath не так, как должно)

Ответы [ 2 ]

3 голосов
/ 06 июня 2011

Я провел обширный эксперимент, сравнивая и сравнивая локаторы XPath, CSS и DOM для Selenium, и обнаружил, что хотя можно получить доступ к атрибуту style из XPath или DOM, один не может из CSS (так же, как вы догадывался). Вы можете найти этот кусок (см. Сноску 2) вместе с моим полным анализом в моей быстрой справочной таблице XPath, CSS, DOM и Selenium: The Rosetta Stone , недавно опубликованной на Simple-Talk.com.

0 голосов
/ 06 июня 2011

Оператор *= отсутствует в CSS2, поэтому в зависимости от используемой версии Selenium он может быть вам недоступен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...