【问题标题】:How to click on a button webelement using css_selector with Selenium webdriver for identical button types如何使用带有 Selenium webdriver 的 css_selector 单击按钮 webelement 以获得相同的按钮类型
【发布时间】:2013-09-11 14:34:39
【问题描述】:

对于 HTML,

<div class="some-class">
    <button type="button">Ok</button>
    <button type="button">Cancel</button>

两个不同按钮的按钮类型相同,那么如何使用 find_element_by_css_selector 点击 Ok 按钮?我试过 driver.find_element_by_css_selector("div.some-class > button.button[1]").click() 但它对我不起作用。

【问题讨论】:

    标签: python selenium selenium-webdriver


    【解决方案1】:

    使用div.some-class &gt; button.button 作为选择器,因为find_element_by_css_selector 返回第一个匹配的WebElement:

    driver.find_element_by_css_selector("div.some-class > button").click()
    

    如果您想明确使用:nth-child(1):first-child

    更新

    选择器错误。选择器应该是div.some-class &gt; button[type=button] 或简单的div.some-class &gt; button

    【讨论】:

    • 这是正确的答案。如果您想单击“取消”按钮,请执行 driver.find_elements_by_css_selector("..."),然后选择列表中的第二项或使用 nth-child(2)
    • 所以我用 (1) 替换了 driver.find_element_by_css_selector("div.some-class &gt; button.button[1]").click() 中的 [1] 但我得到了 Unable to locate element
    • @LP,不是(1),而是:nth-child(1)
    • @falsetru:我尝试了driver.find_element_by_css_selector("div.some-class &gt; button.button:nth-child(1)").click() 和另一个,但结果相同。我还是没有正确使用它吗?
    • @LP,我明白了。将button.button 替换为buttonbutton[type=button]。我以为是class=button ;)
    猜你喜欢
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    • 2019-02-04
    • 2020-09-04
    • 2019-12-14
    • 1970-01-01
    • 1970-01-01
    • 2020-01-24
    相关资源
    最近更新 更多