【问题标题】:Selenium(PYTHON) ng-click issueSelenium(PYTHON) ng-click 问题
【发布时间】:2021-02-17 21:28:29
【问题描述】:

我一直被困在这个问题上,无论我如何写出到特定元素的导航,使用 .click() 都不起作用,在点击触发之前元素 100% 加载(我知道这是因为我可以手动点击它),但它实际上不会点击,是否有一些关于 ng-click 需要规范或什么的东西,但希望我至少可以了解为什么这个元素不会被点击

<div class="item-card-thumb-container" ng-click="root.onItemCardClick(userAsset)">

是否有任何可能的方法来单击此元素而无需专门找到该元素并向其添加 .click() ,因为它似乎不起作用,我理解它太模糊了,但也可能该元素不可点击除非鼠标悬停在元素上,否则它是一个 UI

【问题讨论】:

    标签: python selenium-webdriver xpath css-selectors webdriverwait


    【解决方案1】:

    所需的元素是Angular元素元素,因此理想情况下单击该元素需要为WebDriverWait诱导element_to_be_clickable(),并且可以使用以下Locator Strategies之一:

    • 使用CSS_SELECTOR

      WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.item-card-thumb-container[ng-click^='onItemCardClick']"))).click()
      
    • 使用XPATH

      WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='item-card-thumb-container' and contains(@ng-click, 'onItemCardClick')]"))).click()
      
    • 注意:您必须添加以下导入:

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

    【讨论】:

    猜你喜欢
    • 2015-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多