【问题标题】:How to make selenium click this buttion?如何使硒单击此按钮?
【发布时间】:2020-05-05 09:39:49
【问题描述】:

click to see button

我想让 selenium 点击上面的按钮,所以我使用了:

driver=webdriver.Chrome()
generate=driver.find_element_by_link_text("GENERATE EXCEL FILE TO DOWNLOAD")
generate.click()

但是 selenium 无法找到它,那么我如何让 selenium 找到该按钮并单击它?

PS:我正在使用 Python

【问题讨论】:

    标签: python selenium findelement


    【解决方案1】:

    在执行单击此元素之前,您可能需要稍作“等待”,例如:

    driver=webdriver.Chrome()
    driver.wait_for_element_to_appear
    generate=driver.find_element_by_link_text("GENERATE EXCEL FILE TO DOWNLOAD")
    generate.click()
    

    很简单,请自行搜索

    【讨论】:

    • 问题是网站有很多这样的按钮,所以如果我每次出现这样的按钮时都等待,它会破坏自动化任务的全部目的
    • @DivyamSureka 如果很多按钮的文本与您所说的相同,那么您必须使用 xpath 区分它们
    • 是的,但是当我检查按钮时,我得到以下信息:,那我应该怎么做呢?
    • @DivyamSureka 请尝试以下 xpaths: (//button[text()='Login'])[1] ; (//按钮[文本()='登录'])[2]; (//button[text()='Login'])[3] ;
    【解决方案2】:

    你应该使用 xpath。这是最好的方法,但您必须为您的元素找到 x_path。 比如这样:

    python_button = driver.find_elements_by_xpath("//input[@name='lang' and @value='Python']")[0]
    python_button.click()
    

    也许这个链接可以帮助你: https://pythonspot.com/selenium-click-button/

    此外,您可以尝试通过 id 选择它:

    driver.find_element_by_id("lst-ib")
    

    而且通过可见文本也可以工作:

    driver.find_element_by_link_text("Python Tutorial")
    

    【讨论】:

    • 是的,我试过了,但是 html 代码太复杂了,因此我找不到名称和值。那么有什么办法吗?
    • 你能分享这个网站吗?因为您应该能够在大多数浏览器中选择元素然后获取 xpath。
    • services.gst.gov.in/services/login,这是链接,我想从许多不同的帐户登录并下载每月文件,这是一项非常单调的任务,因此我希望使用 selenium 来减轻我的任务。那么是否可以点击按钮呢?
    • 当然有可能,直接点击你的下载按钮,然后检查这个elemtn,你就可以看到完整的xpath
    • 当我检查按钮时:,所以我应该怎么做?
    猜你喜欢
    • 2021-08-12
    • 2021-12-08
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    • 2020-04-15
    • 1970-01-01
    • 1970-01-01
    • 2018-11-02
    相关资源
    最近更新 更多