Mike Minaev
Mike Minaev

Reputation: 2062

Python Selenium get element by several class names

I have the following html:

<span class="campaign-settings-list__targeting__value js-campaign-settings-value">abc</span>

How can I take this element in using WebDriver in Selenium? I have tried:

return WebDriverWait(self.driver, 30, 0.1).until(
            lambda d: d.find_elements_by_css_selector('.campaign-settings-list__targeting__value .js-campaign-settings-value')
        )

But am getting a timeout exception. Thank you.

Upvotes: 0

Views: 864

Answers (1)

Louis
Louis

Reputation: 151401

This is the selector you need:

.campaign-settings-list__targeting__value.js-campaign-settings-value. 

Note how it does not have a space between the two classes. This can be described as "select elements which posses both classes campaign-settings-list__targeting__value and js-campaign-settings-value."

The selector you specified is this:

.campaign-settings-list__targeting__value .js-campaign-settings-value

This can be described as "select elements twith the class js-campaign-settings-value which are descendants of elements with the class campaign-settings-list__targeting__value."

Upvotes: 1

Related Questions