-1

My code:

from selenium import webdriver
driver = webdriver.Opera(executable_path=r'C:\Users\lolo\Desktop\operadriver_win64\operadriver.exe')
driver.get('https://2whois.ru/?t=dns&data=')
find = driver.find_element_by_class_name('btn-u btn-u-green').text
print(find)

Error:

Traceback (most recent call last):
  File "C:\Users\lolo\PycharmProjects\FindWord\FindWord.py", line 5, in <module>
    find = driver.find_element_by_class_name('btn-u btn-u-green').text
  File "C:\Users\lolo\PycharmProjects\FindWord\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 564, in find_element_by_class_name
    return self.find_element(by=By.CLASS_NAME, value=name)
  File "C:\Users\lolo\PycharmProjects\FindWord\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 976, in find_element
    return self.execute(Command.FIND_ELEMENT, {
  File "C:\Users\lolo\PycharmProjects\FindWord\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:\Users\lolo\PycharmProjects\FindWord\venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: Compound class names not permitted
  (Session info: chrome=88.0.4324.182)
  (Driver info: operadriver=88.0.4324.104 (17905c015d3376dee9cce5dd079a3f4fa906e060-refs/branch-heads/4324_96@{#3}),platform=Windows NT 10.0.19041 x86_64)

I wonder what this error appears only when i parse element by class name. If i find elements by id:

find = driver.find_element_by_id()

then there is no error I already update selenium

This is strange, please help

Mirai
  • 115
  • 2
  • 16
  • Does this answer your question? [Compound class names not permitted error Webdriver](https://stackoverflow.com/questions/32043877/compound-class-names-not-permitted-error-webdriver) – JaSON Mar 09 '21 at 09:59

1 Answers1

0

find_element_by_class_name() accept single class only you can pass single class name or instead use css selector.

find = driver.find_element_by_class_name('btn-u-green').text
print(find)

OR

find = driver.find_element_by_css_selector('.btn-u.btn-u-green').text
print(find)
KunduK
  • 32,888
  • 5
  • 17
  • 41