python selenium点击按钮

新手上路,请多包涵

我对 python selenium 很陌生,我试图点击一个具有以下 html 结构的按钮:

 <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 按钮(显然是单独的)。

我尝试了几件事,例如:

 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 结束,例如:

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

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

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

原文由 AJW 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

对于 python,使用

from selenium.webdriver import ActionChains

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

原文由 AshishGalagali 发布,翻译遵循 CC BY-SA 4.0 许可协议

删除 css 选择器中类之间的空格:

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

=>

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

原文由 falsetru 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题