python selenium点击按钮

问题描述

我对 python selenium 很陌生,我正在尝试单击具有以下 html 结构的按钮:

I am quite new to python selenium and I am trying to click on a button which has the following html structure:

<div class="b_div">

    <div class="button c_button s_button" onclick="submitForm('mTF')">
        <input class="very_small" type="button"></input>
        <div class="s_image"></div>
        <span>
           Search
        </span>
    </div>

    <div class="button c_button s_button" onclick="submitForm('rMTF')" style="margin-bottom: 30px;">
        <input class="v_small" type="button"></input>
        <span>
              Reset
        </span>
   </div>

</div>

我希望能够同时单击上面的 SearchReset 按钮(显然是单独的).

I would like to be able to click both the Search and Reset buttons above (obviously individually).

我已经尝试了几件事,例如:

I have tried a couple of things, for example:

driver.find_element_by_css_selector('.button .c_button .s_button').click()

或者,

driver.find_element_by_name('s_image').click()

或者,

driver.find_element_by_class_name('s_image').click()

但是,我似乎总是以 NoSuchElementException 结束,例如:

but, I seem to always end up with NoSuchElementException, for example:

selenium.common.exceptions.NoSuchElementException: Message: u'Unable to locate element: {"method":"name","selector":"s_image"}' ;

我想知道是否可以以某种方式使用 HTML 的 onclick 属性来使 selenium 点击?

I am wondering if I can somehow use the onclick attributes of the HTML to make selenium click?

任何可以为我指明正确方向的想法都会很棒.谢谢.

Any thoughts which can point me in the right direction would be great. Thanks.


解决方案

对于python,使用

For python, use the

from selenium.webdriver import ActionChains

ActionChains(browser).click(element).perform()

相关文章