<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
..定位器
但它的投掷
&#34;引发exception_class(消息,屏幕,堆栈跟踪) selenium.common.exceptions.NoSuchElementException:消息:没有这样的 element:无法找到元素:&#34;
答案 0 :(得分:0)
显然,您的选择器(在评论中提供)不会起作用:
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')