Python单击Selenium按钮

2024-10-02 00:35:59 发布

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

这是我要点击的按钮:

<button class="stkv-c-button stkv-us-button-color--background 
    stkv-u-background-color-transition-150 
    stkv-us-button-color--border stkv-us-button-color 
    stkv-us-button-color--fill stkv-c-button 
    stkv-c-button--raised stkv-c-button--big">

    <span class="stkv-c-button__label stkv-c-button__label--big">Vote Now</span>
</button>

这是xpath(来自Firefox):

^{2}$

我试过各种各样的方法来点击这个按钮,但都没有用。在

self.driver.find_element_by_xpath("//*[@id='root']/html/body/div/div/div[3]/div/div/footer/div/button").click()
self.driver.findElement(By.id("Vote Now")).click()
self.driver.find_element_by_name("Vote").send_keys(Keys.ENTER)
self.driver.find_element_by_id('stkv-c-button stkv-us-button-color--background stkv-u-background-color-transition-150 stkv-us-button-color--border stkv-us-button-color stkv-us-button-color--fill stkv-c-button stkv-c-button--raised stkv-c-button--big').click()

如有任何建议,我们将不胜感激!在

我一点运气都没有。在


Tags: selfdividbydriverbuttonelementfind
3条回答

您的按钮没有id或名称,因此find_element_by_name和{}方法将不起作用。find_element_by_class_name似乎是一个逻辑选择,但不幸的是它只需要一个类,而且由于按钮有多个类,所以它也不能工作。我会尝试用CSS选择器定位按钮:

self.driver.find_element_by_css_selector('button.stkv-c-button.stkv-us-button-color--background.stkv-u-background-color-transition-150.stkv-us-button-color--border.stkv-us-button-color.stkv-us-button-color--fill.stkv-c-button.stkv-c-button--raised.stkv-c-button--big').click()

只要页面上没有使用完全相同的CSS选择器的另一个按钮,这将为您提供正确的按钮。一般来说,如果您想找到一个包含多个类的元素,例如<button class="A B C">MyButton</button>,那么您可以使用以下方法:

^{pr2}$

使用这个XPath://button[normalize-space()='Vote Now']

你可以通过在按钮上显示文本来找到它。在

locator = "//button[span[text()='Vote Now']]"
self.driver.find_element_by_xpath(locator).click()

相关问题 更多 >

    热门问题