簡體   English   中英

使用 Selenium 和 Python 單擊項目

[英]Click on item using Selenium and Python

我正在嘗試使用 Python 中的以下代碼單擊“培訓材料統計”,但它不起作用:

WebDriverWait(driver,20)\
    .until(EC.element_to_be_clickable((By.XPATH,'//*[@id="report-navigation"]/div[2]')))\
    .click()

HTML:

<div id="report-navigation">
    <div class="report-nav-btn active" onclick="Report.changeGrid(this, 'report-users-grid')">
       User statistics          
       <div class="report-nav-arrow active"></div>
    </div>
    <div class="report-nav-btn" onclick="Report.changeGrid(this, 'report-objects-grid')">
       Training material statistics         
       <div class="report-nav-arrow"></div>
    </div>
    <div class="report-nav-btn" onclick="Report.changeGrid(this, 'report-deliverables-grid')">
       Learner assignments          
       <div class="report-nav-arrow"></div>
    </div>
</div>

HTML 快照:

HTML 圖像

要單擊元素,您需要為element_to_be_clickable()誘導WebDriverWait ,您可以使用以下任一Locator Strategies

  • 使用CSS_SELECTOR

     WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div#report-navigation div[onclick*='report-objects-grid']"))).click()
  • 使用XPATH

     WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@id='report-navigation']//div[contains(@onclick, 'report-objects-grid')]"))).click()
  • 注意:您必須添加以下導入:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM