【问题标题】:How to select the particular web element from the HTML code below using python selenium如何使用 python selenium 从下面的 HTML 代码中选择特定的 web 元素
【发布时间】:2018-11-30 16:11:50
【问题描述】:

以下是 HTML 代码以及如何使用 xpath 或 css 选择器选择元素枯萎

<button class="btn btn-sm ng-pristine ng-untouched ng-valid ng-empty" ng-repeat="ext in _view.getNonEmptyChildren()" ng-click="_navigate(ext.$id, _route.objectId, { 'navigator' : _route.navigator,
               'relatedItemParentId': relatedItemParentId(ext.$parent)})" ng-class="{active: _view.getSelectedChild().$id == ext.$id}" ng-model="radioModel" btn-radio="'{ext[nameField]}'" aria-invalid="false">Clusters</button>

【问题讨论】:

  • 请不要像这样在 cmets 中添加代码,您可以编辑原始问题以添加格式正确的代码(全部突出显示并单击 {} 按钮在编辑器中)。在 cmets 中很难阅读。

标签: python selenium xpath css-selectors webdriverwait


【解决方案1】:

所需的元素是Angular 元素,因此您必须诱导WebDriverWait 以使所需的元素可点击,您可以使用以下任一解决方案:

  • 使用CSS_SELECTOR

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.btn.btn-sm.ng-pristine.ng-untouched.ng-valid.ng-empty[ng-model='radioModel'][ng-class*='getSelectedChild']"))).click()
    
  • 使用XPATH

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@class='btn btn-sm ng-pristine ng-untouched ng-valid ng-empty' and @ng-model='radioModel'][contains(.,'Clusters')]"))).click()
    
  • 注意:您必须添加以下导入:

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

【讨论】:

    猜你喜欢
    • 2021-11-17
    • 2022-06-11
    • 1970-01-01
    • 1970-01-01
    • 2022-08-20
    • 2023-03-07
    • 2019-02-25
    • 2020-05-26
    • 1970-01-01
    相关资源
    最近更新 更多