Click button by text using Python and Selenium

user5936345 picture user5936345 · Feb 18, 2016 · Viewed 27.7k times · Source

Is it possible to click multiply buttons with the same text with Selenium?

Text = Unlock this result here

Answer

kchomski picture kchomski · Feb 18, 2016

You can find all buttons by text and then execute click() method for each button in a for loop.

Using this SO answer it would be something like this:

buttons = driver.find_elements_by_xpath("//*[contains(text(), 'My Button')]")

for btn in buttons:
    btn.click()

I also recommend you take a look at Splinter which is a nice wrapper for Selenium.

Splinter is an abstraction layer on top of existing browser automation tools such as Selenium, PhantomJS and zope.testbrowser. It has a high-level API that makes it easy to write automated tests of web applications.