如何使用python从下面的HTML代码中选择特定的web元素

2024-04-26 02:24:51 发布

您现在位置:Python中文网/ 问答频道 /正文

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

<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>

Tags: 代码viewidnavigatorhtml选择器buttonng
1条回答
网友
1楼 · 发布于 2024-04-26 02:24:51

所需的元素是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
    

相关问题 更多 >