Элемент щелчка Python Selenium без дополнительного класса - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть элемент с классом hello.all

И другой с классом hello.all.today

Я хочу щелкнуть все элементы с классом hello.all , но не нажимайте элементы с классом hello.all.today

Как это можно сделать?

Мой фактический код:

    while number != amount:
        for list in driver.find_elements_by_css_selector('.hello.all'):
            k = list.get_attribute("class")
            if k == ".hello.all.today":
                pass
            elif k != ".hello.all.today":
                list.click()
                number += 1
                if number == amount:
                    break
            time.sleep(0.35)

1 Ответ

0 голосов
/ 18 декабря 2018

Вместо того, чтобы просматривать элементы и проверять их класс, почему бы не создавать формы и CSS или XPATH таким образом, чтобы вы не использовали этот нежелательный элемент.

Я не очень хорош с CSS, поэтому я бы пошел с XPATH.

Вы можете просто сформировать xpoth таким образом

// * [содержит (@ class, 'class_should_be_present') и не (содержит (@ class, 'class_should_NOT_be_present'))]

Ваш код должен выглядеть следующим образом.

elements = driver.find_elements_by_xpath("//input[contains(@class,'hello.all') and not(contains(@class,'hello.all.today'))]")
for element in elements:
     element.click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...