Есть ли способ получить место назначения ссылки в JavaScript из xpath ссылки? - PullRequest
0 голосов
/ 13 мая 2011

Я использую Selenium RC для написания тестовых примеров для веб-сайта, который хотя бы частично генерируется динамически или иным образом зависит от базы данных.Я хотел бы быть в состоянии сказать моей программе на Python, выполняющей вызовы Selenium, выполнять строковые операции с целью определенной ссылки, но я не могу быть уверен, что цель (поле href = '') будет на "время компиляции "(или, ну, какой бы ни был эквивалент Python. Может ли кто-нибудь помочь мне там?).

Теперь я уверен, каким будет путь к этой ссылке;"// table [@ id = 'search-results'] / tbody / tr [2] / td [3] / a / img".И я использую Selenium, у которого есть функция eval () (корень всего зла), которая запускает произвольные строки javascript.Есть ли какой-нибудь способ, которым я могу получить цель этой ссылки от xpath и Selenium, или мне нужно найти какой-то способ загрузить весь исходный код страницы (как мне это сделать? Для загрузки этой команды должна была быть команда Selenium).весь источник страницы, но я получил сообщение об ошибке «элемент не существует» при попытке запустить его), а затем отключил регулярные выражения, чтобы связываться со всем источником страницы?

Ответы [ 2 ]

1 голос
/ 13 мая 2011

Я думаю, что вы можете сделать это, используя метод get_attribute Python здесь: http://code.google.com/p/selenium/source/browse/trunk/py/selenium/selenium.py#1343

Вызов будет выглядеть примерно так:

href = mySelenium.get_attribute("//table[@id='search-results']/tbody/tr[2]/td[3]/a@href")
0 голосов
/ 13 мая 2011

Ваше выражение XPath выбирает элемент img , но мне кажется, что вы хотите получить его родительский элемент a .Так что, если ваш XPath правильный, тогда цель ссылки должна быть:

<...value-of select="//table[@id='search-results']/tbody/tr[2]/td[3]/a@href"/>

или, возможно:

<...for-each select="//table[@id='search-results']/tbody/tr[2]/td[3]/a">
  <...value-of select="@href" />
</...for-each>

где ... ваше пространство имен

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