我是python / selenium的新手,我在尝试选择一个选项时遇到此错误 . 只是发现我试图使用的只适用于选择标签而不适用于ng-select标签 .

这是我用过的示例代码:

select  = Select(wait.until(EC.element_to_be_clickable((By.XPATH, '//*[@id="mat-dialog-1"]/app-editdialog/div/mat-dialog-content/form/div/div[1]/div/div/div[1]/ng-select'))))
select.select_by_visible_text("Home")

错误显示:

selenium.common.exceptions.UnexpectedTagNameException: Message: Select only works on <select> elements, not on <ng-select>

HTML:

<ng-select _ngcontent-c22="" bindlabel="text" bindvalue="id" class="ng-select ng-select-single ng-select-searchable ng-untouched ng-pristine ng-star-inserted ng-invalid ng-select-opened ng-select-bottom" required="" role="listbox" ng-reflect-ng-class="[object Object]" ng-reflect-items="[object Object],[object Object" ng-reflect-bind-label="text" ng-reflect-bind-value="id" ng-reflect-clearable="false" ng-reflect-required="" ng-reflect-name="nameField01id" ng-reflect-model=""><div class="ng-select-container ng-has-value"><div class="ng-value-container"><div class="ng-placeholder"></div><!--bindings={
  "ng-reflect-ng-if": "true"
}--><!----><!--bindings={
  "ng-reflect-ng-for-of": "[object Object]"
}--><div class="ng-value ng-star-inserted"><!----><!--bindings={
  "ng-reflect-ng-template-outlet-context": "[object Object]",
  "ng-reflect-ng-template-outlet": "[object Object]"
}-->  </div><!----><!--bindings={}--><div class="ng-input"><input role="combobox" type="text" autocomplete="a59d88f9674b" aria-expanded="true" aria-owns="a59d88f9674b" aria-activedescendant="a77f2753f06a"></div></div><!--bindings={
  "ng-reflect-ng-if": "false"
}--><!--bindings={
  "ng-reflect-ng-if": "false"
}--><span class="ng-arrow-wrapper"><span class="ng-arrow"></span></span></div><!--bindings={
  "ng-reflect-ng-if": "true"
}--><ng-dropdown-panel class="ng-dropdown-panel ng-star-inserted ng-select-bottom" ng-reflect-klass="ng-dropdown-panel" ng-reflect-items="[object Object],[object Object" ng-reflect-marked-item="[object Object]" ng-reflect-position="auto" ng-reflect-buffer-amount="4" ng-reflect-virtual-scroll="false" id="a59d88f9674b" style="opacity: 1;"><!--bindings={}--><div class="ng-dropdown-panel-items scroll-host"><div></div><div><!----><!--bindings={
  "ng-reflect-ng-for-of": "[object Object],[object Object"
}--><div class="ng-option ng-star-inserted" role="option" aria-selected="false" id="ad3287f6ab55"><!----><!--bindings={
  "ng-reflect-ng-template-outlet-context": "[object Object]",
  "ng-reflect-ng-template-outlet": "[object Object]"
}--> Home </div><div class="ng-option ng-star-inserted" role="option" aria-selected="false" id="a08d99ee8008"><!----><!--bindings={
  "ng-reflect-ng-template-outlet-context": "[object Object]",
  "ng-reflect-ng-template-outlet": "[object Object]"
}--> Work </div><div class="ng-option ng-star-inserted ng-option-marked" role="option" aria-selected="false" id="a77f2753f06a"><!----><!--bindings={
  "ng-reflect-ng-template-outlet-context": "[object Object]",
  "ng-reflect-ng-template-outlet": "[object Object]"
}--> Mobile </div><div class="ng-option ng-star-inserted" role="option" aria-selected="false" id="a026c24f6b51"><!----><!--bindings={
  "ng-reflect-ng-template-outlet-context": "[object Object]",
  "ng-reflect-ng-template-outlet": "[object Object]"
}--> Others </div><!--bindings={
  "ng-reflect-ng-if": "false"
}--><!--bindings={
  "ng-reflect-ng-if": "false"
}--><!--bindings={
  "ng-reflect-ng-if": "false"
}--><!--bindings={
  "ng-reflect-ng-if": "false"
}--></div></div><!--bindings={}--></ng-dropdown-panel></ng-select>