![Фотография](https://secure.gravatar.com/avatar/fb05ccff813afea21232929624e4dff9?s=100&d=https%3A%2F%2Fsoftware-testing.ru%2Fforum%2Fpublic%2Fstyle_images%2Fmaster%2Fprofile%2Fdefault_large.png)
Действия обратные поиску элемента
#1
Отправлено 19 апреля 2012 - 14:59
Подскажите, пожалуйста, а как действовать в том случае, если я хочу получить или установить значение параметру в найденном элементе?
То есть вот в таком допустим случае :
<a id="ctl00l" target_id="58810" value="">
</a>.
Элемент по ID я нашел, а могу ли теперь как-то задать значение для Value и узнать значение для target_id? (Webdriver и С#).
Спасибо.
#2
Отправлено 19 апреля 2012 - 15:35
Здравствуйте.
Подскажите, пожалуйста, а как действовать в том случае, если я хочу получить или установить значение параметру в найденном элементе?
То есть вот в таком допустим случае :
<a id="ctl00l" target_id="58810" value="">
</a>.
Элемент по ID я нашел, а могу ли теперь как-то задать значение для Value и узнать значение для target_id? (Webdriver и С#).
Спасибо.
Изменение аттрибута:
public WebElement getElement(By locator) {
return driver.findElement(locator);
}
public void setAttribute(By locator, String attribute, String value) {
((JavascriptExecutor) getDriver()).executeScript("arguments[0].setAttribute('" + attribute
+ "',arguments[1]);",
getElement(locator),
value);
}
Вернуть значение аттрибута
getElement(locator).getAttribute(String nameOfAttribute);
Попробуйте
#3
Отправлено 20 апреля 2012 - 07:10
<a id="ctl00" target_id="58810">
<span id="ctl001>AutoArticle1</span>
</a>
driver.FindElement(By.XPath("//span[text()='AutoArticle']")).GetAttribute("target_id") - не работает(но элемент находится нормально), т.к. нужный мне атрибут в теге А , а к тегу а мне не обратиться напрямую, так как атрибута ИД я не знаю. Вопрос в том можно ли составить хпасс, который проверит текст ребенка , то есть span, а сам возьмет значения из атрибута, находящегося в родителе? Спасибо.
#4
Отправлено 20 апреля 2012 - 09:24
Спасибо, помогло, но возник еще один вопрос. А как выбрать родительский элемент в XPath? То есть имею такую ситуацию
<a id="ctl00" target_id="58810">
<span id="ctl001>AutoArticle1</span>
</a>
driver.FindElement(By.XPath("//span[text()='AutoArticle']")).GetAttribute("target_id") - не работает(но элемент находится нормально), т.к. нужный мне атрибут в теге А , а к тегу а мне не обратиться напрямую, так как атрибута ИД я не знаю. Вопрос в том можно ли составить хпасс, который проверит текст ребенка , то есть span, а сам возьмет значения из атрибута, находящегося в родителе? Спасибо.
Можно. Попробуйте такой XPath:
(//span[text()='AutoArticle'])/ancestor::a
#5
Отправлено 20 апреля 2012 - 09:43
Попробуйте такСпасибо, помогло, но возник еще один вопрос. А как выбрать родительский элемент в XPath? То есть имею такую ситуацию
<a id="ctl00" target_id="58810">
<span id="ctl001>AutoArticle1</span>
</a>
driver.FindElement(By.XPath("//span[text()='AutoArticle']")).GetAttribute("target_id") - не работает(но элемент находится нормально), т.к. нужный мне атрибут в теге А , а к тегу а мне не обратиться напрямую, так как атрибута ИД я не знаю. Вопрос в том можно ли составить хпасс, который проверит текст ребенка , то есть span, а сам возьмет значения из атрибута, находящегося в родителе? Спасибо.
//parent::span[text()='AutoArticle']
Но лучше пробуйте достучаться именно к тэгу а :)
#6
Отправлено 20 апреля 2012 - 09:56
Попробуйте так
Спасибо, помогло, но возник еще один вопрос. А как выбрать родительский элемент в XPath? То есть имею такую ситуацию
<a id="ctl00" target_id="58810">
<span id="ctl001>AutoArticle1</span>
</a>
driver.FindElement(By.XPath("//span[text()='AutoArticle']")).GetAttribute("target_id") - не работает(но элемент находится нормально), т.к. нужный мне атрибут в теге А , а к тегу а мне не обратиться напрямую, так как атрибута ИД я не знаю. Вопрос в том можно ли составить хпасс, который проверит текст ребенка , то есть span, а сам возьмет значения из атрибута, находящегося в родителе? Спасибо.
//parent::span[text()='AutoArticle']
Но лучше пробуйте достучаться именно к тэгу а :)
Да, можно и parent использовать, но XPath тогда будет выглядеть так:
//span[text()='AutoArticle']/parent::a
Разница между parent и ancestor лишь в том что parent возвращает одного предка, а ancestor - множество.
#7
Отправлено 20 апреля 2012 - 11:18
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных