如何点击按钮与文字作为获取应用程序内的网站https://www.wikiloc.com/wikiloc/download.do?id=41057284

2024-09-28 23:23:07 发布

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

我想按这个网站的绿色下载按钮:https://www.wikiloc.com/wikiloc/download.do?id=41057284

使用selenium chrome驱动程序。但是什么都不管用

我试着用xpath搜索:

clone_box = driver.find_element_by_xpath('//*[@id="btn-download-file"]')

选择器:

clone_box = driver.find_element_by_xpath('#btn-download-file')

类名:

clone_box = driver.find_element_by_class_name('btn btn-lg btn-success')

不起作用。 进一步的调查使我找到了所谓的frame/iframe

下面的代码假设要将其切换到:

driver.switch_to_frame(driver.find_element_by_id("download-option"))

但它也不起作用

问题是,帧/iframe在哪里?如何切换到它


Tags: boxidbyclone网站downloaddriverelement
1条回答
网友
1楼 · 发布于 2024-09-28 23:23:07

要在元素上click(),必须将该元素置于element_to_be_clickable()Viewport内,并且可以使用以下Locator Strategies

  • 使用LINK_TEXT

    driver.get("https://www.wikiloc.com/wikiloc/download.do?id=41057284")
    driver.execute_script("scroll(0, 250)");
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.LINK_TEXT, "Get the App"))).click()
    
  • 使用CSS_SELECTOR

    driver.get("https://www.wikiloc.com/wikiloc/download.do?id=41057284")
    driver.execute_script("scroll(0, 250)");
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a.btn.btn-lg.btn-success[onclick^='ga']"))).click()
    
  • 使用XPATH

    driver.get("https://www.wikiloc.com/wikiloc/download.do?id=41057284")
    driver.execute_script("scroll(0, 250)");    
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[@class='btn btn-lg btn-success' and text()='Get the App']"))).click()
    
  • 注意:必须添加以下导入:

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

相关问题 更多 >