#selenium
#selenium
Вопрос:
Я пытаюсь получить идентификатор с помощью кнопки отправки ввода. Когда будет подтверждено, что это правильный, я хочу щелкнуть по нему …. но я не могу найти входные данные типа submit. Я получаю исключение NoSuchElementException.
Заранее благодарю вас, ребята 🙂
Мой HTML-код
<html>
<body>
<form name="aspnetForm" method="post" action="./river.aspx" id="aspnetForm">
<!--CONTENT START-->
<table width="100%" style="text-align: center">
<tbody>
<tr>
<td style="vertical-align: top">
<span class="CHeading">Choose a river in Stockholm:</span><br>
<input type="submit" name="ctl00$BodyContent$btnChooseRiver00" value="River 00" id="ctl00_BodyContent_btnChooseRiver00" class="CButtonLarge">
<span><br></span>
<input type="submit" name="ctl00$BodyContent$btnChooseRiver01" value="River 01" id="ctl00_BodyContent_btnChooseRiver01" class="CButtonLarge">
</td>
<td style="vertical-align: top">
<span class="CHeading">Choose a river in Solna:</span><br>
<input type="submit" name="ctl00$BodyContent$btnChooseRiver10" value="River 10" id="ctl00_BodyContent_btnChooseRiver10" class="CButtonLarge">
<span><br></span>
<input type="submit" name="ctl00$BodyContent$btnChooseRiver11" value="River 11" id="ctl00_BodyContent_btnChooseRiver11" class="CButtonLarge">
<span><br></span>
<input type="submit" name="ctl00$BodyContent$btnChooseRiver12" value="River 12" id="ctl00_BodyContent_btnChooseRiver12" class="CButtonLarge">
<span><br></span>
<input type="submit" name="ctl00$BodyContent$btnChooseRiver13" value="River 13" id="ctl00_BodyContent_btnChooseRiver13" class="CButtonLarge">
</td>
</tr>
</tbody>
</table>
</form>
</body>
Мой код на Python:
try:
trInTable = driver.find_element_by_css_selector("#aspnetForm > table > tbody > tr")
twoTdWithData = trInTable.find_elements_by_css_selector('td')
# I get 2 TD in next step
print(len(twoTdWithData))
#loop the 2 TD
for td in twoTdWithData:
oneChoose = td.find_element_by_css_selector("input[type='submit']")
idInButton = oneChoose.get_attribute("id")
за исключением исключения TimeoutException:
print(‘TimeoutException’)
за исключением исключения NoSuchElementException:
print(‘Исключение NoSuchElementException’)
Ответ №1:
Добро пожаловать в SO. Вот код.
form = driver.find_element_by_id('aspnetForm')
submitBtns = form.find_elements_by_xpath("//table//tr//td/input[@type='submit']")
for submitBtn in submitBtns:
print submitBtn.get_attribute("id")
Комментарии:
1. Спасибо @supputuri! 🙂 Вместо этого я делаю это для form («aspnetForm») theform = driver.find_element_by_id(‘aspnetForm’) submitBtns = theform.find_elements_by_xpath(«//таблица //tr //td/ввод[@type=’отправить’]») Теперь это работает! Еще раз спасибо!
2. @supputuri: Мне любопытно, присутствует ли что-нибудь в selenium
driver.switch_to.form("aspnetForm")
???3. Ха-ха-ха, это была опечатка. Я думал, что все время, пока печатал, говорил о фрейме, обновил ответ. Спасибо, что указали на это Kajal.