Selenium无法找到一个类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Selenium无法找到一个类相关的知识,希望对你有一定的参考价值。
所以我在使用selenium的时候遇到了一个定位类的问题,我已经尝试了所有的方法来成功地定位类的属性,并对它进行一些操作,例如。
driver.find_element_by_tag_name('div button')
driver.web.find_element_by_class_name('btn-secondary-md save-button ng-binding')
例如: 代码样本
<button class="btn-secondary-md save-button ng-binding" ng-click="$ctrl.showChangeOwnerModal()" ng-bind="'Label.ChangeOwner' | translate">Change Owner</button>
答案
尝试用css选择器定位。
driver.find_element_by_css_selector('button.btn-secondary-md.save-button.ng-binding')
如果你还是得到一些错误,比如元素不可点击,尝试在webelement上使用显式等待。
另一答案
很可能是由于同步问题,你可以使用WebDriverWait来避免同步问题。
解决办法1:使用WebDriverWait来避免同步问题。
wait = WebDriverWait(driver, 10)
wait.until(EC.element_to_be_clickable((By.CLASS_NAME, "btn-secondary-md save-button ng-binding")))
解决办法2.使用WebDriverWait来避免同步问题。
wait = WebDriverWait(driver,30)
element = wait.until(EC.element_to_be_clickable((By.XPATH, "//button[contains(text(),'Change Owner')]")))
注意:请在你的解决方案中添加以下导入。 请在你的解决方案中添加以下导入
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
如果你仍然面临这个问题,那么请检查你的元素是否在iframe中,如果是,那么你必须切换到iframe控制。
以上是关于Selenium无法找到一个类的主要内容,如果未能解决你的问题,请参考以下文章
构建错误:无法找到org.openqa.selenium.internal.Locatable的类文件
Selenium Xpath元素无法定位 NoSuchElementException: Message: no such element: Unable to locate element(代码片段
org.openqa.selenium.NoSuchElementException无法找到element:method“:”link text“,”selector“:”http://