2017-02-02 4 views
0
<button ng-if="vm.signatureRequired" ng-disabled="!vm.signature || vm.signature.length < 2" type="button" aria-hidden="true" data-ng-click="$hide();vm.isAgreement=true;" class="btn btn-default back_btn ng-scope">I Agree</button> 

Я попытался Link_Text, xpath, class ..locators , но его метанияКак найти Angularjs элементы, используя селен - питон

«поднять exception_class (сообщение, экран, StackTrace) selenium.common .exceptions.NoSuchElementException: Сообщение: нет таких элемента: не удалось найти элемент: "

+0

Показать код, который вы уже пробовали уже – Andersson

+0

1) driver.find_element_by_class_name («БТН БТН-умолчанию back_btn нг-сфера») нажмите кнопку () – Muthu

ответ

0

Очевидно, что ваши селекторы (р rovided в комментариях) не будет работать, как:

  • Вы не можете использовать find_element_by_class_name() с именами классов соединений
  • Вы не можете применить find_element_by_link_text() к button элементов (но a только)

Попробуйте использовать следующий код и напишите мне, если исключение по-прежнему происходит:

driver.find_element_by_xpath('//button[text()="I Agree"]').click() 

Вам также может потребоваться некоторое время, чтобы подождать пока ваша кнопка не станет кликабельны:

from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 


wait = WebDriverWait(driver, 10) 
wait.until(EC.element_to_be_clickable((By.XPATH, '//button[text()="I Agree"]'))).click() 

Другой способ решения NoSuchElementException, чтобы проверить г ли элемент, расположенный внутри frame/iframe блока. Если да, то вам нужно перейти на этот кадр перед обработкой целевого элемента:.

driver.switch_to_frame('frame_name_or_id') 
+0

Спасибо Андерсон над кодом работает нормально – Muthu

Смежные вопросы