簡體   English   中英

無法移至 selenium 中的下一頁

[英]Unable to to move to next page in selenium

我正在嘗試遍歷頁面並打印表格的值,但無法單擊下一步按鈕。

錯誤:

Selenium.common.exceptions.ElementClickInterceptedException: Message: 
Element <a class="page-link"
href="javascript:move('generic-tokenholders2?a=0xB8c77482e45F1F44dE1
745F52C74426C631bDD52&sid=&m=normal&s=16579517055253348798759097&p=2')"> 
is not clickable at point (1148,2553) because another element <div id="overlay"> 
obscures it`

頁面: https://etherscan.io/token/0xB8c77482e45F1F44dE1745F52C74426C631bDD52#balances

我的代碼:

driver.get("https://etherscan.io/token/0xB8c77482e45F1F44dE1745F52C74426C631bDD52#balances")
wait = WebDriverWait(driver,30)
# num=driver.find_element(By.CSS_SELECTOR, "/html/body/div[2]/div[3]/div/div/ul/li[3]/span/strong[2]").getText()
for i in range(1,20):
    time.sleep(5)
    wait.until(EC.frame_to_be_available_and_switch_to_it((By.ID,"tokeholdersiframe")))
    print("udj")
    simpleTable = driver.find_element(By.XPATH,"/html/body/div[2]/div[3]/table")
    rows = driver.find_elements(By.TAG_NAME,"tr")
    for i in range(1,len(rows)):
            cols = rows[i].find_elements(By.TAG_NAME,"td")
            for g in cols:
                    print(g.text)
    next = wait.until(EC.element_to_be_clickable((By.XPATH,"//div[@class='d-inline-block']//a[@aria-label='Next']")))
    driver.execute_script("arguments[0].scrollIntoView(true);",next)
    driver.execute_script("window.scrollBy(0,-200);")
    next.click()
    driver.switch_to.default_content()

更新:錯誤 pmadhu:`

如果您在循環中觀察到您正在切換到iframe執行一些操作並單擊Next

當第二頁打開時,scope 仍在上一頁iframe上,您正試圖在其中找到iframe 這不是正確的工作流程。

您需要在單擊Next后執行switch_to.default_content() ,然后嘗試在每個頁面上執行相同的操作。

下面的代碼毫無例外地點擊了Next

driver.get("https://etherscan.io/token/0xB8c77482e45F1F44dE1745F52C74426C631bDD52#balances")
wait = WebDriverWait(driver,30)

for i in range(5):
    time.sleep(5)
    wait.until(EC.frame_to_be_available_and_switch_to_it((By.ID,"tokeholdersiframe")))
    next = wait.until(EC.element_to_be_clickable((By.XPATH,"//div[@class='d-inline-block']//a[@aria-label='Next']")))
    driver.execute_script("arguments[0].scrollIntoView(true);",next)
    driver.execute_script("window.scrollBy(0,-200);")
    next.click()
    driver.switch_to.default_content()

暫無
暫無

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

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