#java #selenium #xpath
#java #selenium #xpath
Вопрос:
Пожалуйста, найдите html-код ниже :
<div class="col-lg-3 col-md-4">
<select ui-select2="ui-select2" name="dealer" id="selected_dsd" ng-init="delegate.init()" ng-model="selectedMainStoreTest" ng-change="delegate.getBranchDealers()">
<option value="">{{'manageChargeCodes.form.fields.choose' |translate}}</option>
<option ng-repeat="dealer in mainStoreDealerList" value="{{dealer}}">{{dealer.id}} - {{dealer.name}}</option>
</select>
</div>
Из приведенного ниже кода я получу некоторый список опций, и я должен получить выбранные значения, используя XPath
<option ng-repeat="dealer in mainStoreDealerList" value="{{dealer}}">{{dealer.id}} - {{dealer.name}}</option>
Пожалуйста, найдите приведенный ниже код, который я использую для получения выбранного значения
@FindBy(xpath = "//*[@id="select2-result-label-90"]")
private WebElement mainStoreDealersSelector;
public void selectMainStoreDealers(String mainStoreDealer) {
System.out.println("Xpath--->" mainStoreDealersSelector);
selectFromDropDown(mainStoreDealersSelector, mainStoreDealer);
System.out.println("Completed....");
}
И я получаю приведенные ниже результаты во время их печати.
Xpath--->Proxy element for: org.openqa.selenium.support.pagefactory.DefaultElementLocator@d93a6a5
и его получение не удалось с приведенной ниже ошибкой :
Results :
Tests in error:
Unable to locate element: {"method":"xpath","selector":"//*[@id="select2-result-label-90"]"}
Command duration or timeout: 100.29 seconds
Комментарии:
1. Похоже, что ни один элемент не имеет этого идентификатора в html-коде
Ответ №1:
Попробуйте использовать селектор «ID», иногда при сбое xpath мы используем свойства CSS для выбора элемента.
@FindBy(id="selected_dsd")
Ответ №2:
В вашем HTML нет элемента с select2-result-label-90
id. Если вы пытаетесь выбрать элемент «select», правильный xpath будет
@FindBy(xpath = "//*[@id='selected_dsd']")