猿问

单击带有库 selenium 的标签的属性

我尝试使用 Selenium 库单击标签 div 中的属性类容器。这是代码:


from selenium import webdriver

from selenium.webdriver.common.by import By


driver = webdriver.Chrome()

driver.get('https://www.flashscore.com/')


driver.find_element(By.CSS_SELECTOR, ".header__button header__button--search").click()

这是错误显示:


>>> driver.find_element(By.CSS_SELECTOR, ".header__button header__button--search").click();

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

  File "C:\Users\avis\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py",

第 976 行,在 find_element 中返回 self.execute(Command.FIND_ELEMENT, { File "C:\Users\avis\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver. py”,第 321 行,在执行 self.error_handler.check_response(response) 文件“C:\Users\avis\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\errorhandler .py”,第242行,在check_response中引发异常_类(消息,屏幕,堆栈跟踪)selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法找到元素:{“method”:“css选择器”,“selector” :".header__button header__button--search"} (会话信息:chrome=85.0.4183.102)


该代码的灵感来自于 selenium 文档:https ://www.selenium.dev/documentation/en/getting_started_with_webdriver/performing_actions_on_the_aut/


我做了一些研究,找到了一个可以克服异常的函数,它是:element_to_be_clickable() 根据文档,它用于等待元素显示并可单击。我这样用它:


> > element = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CLASS_NAME, "header__button

> header__button--search"))

>     element.click();

但是这个语法错误显示在控制台中:


文件“”,第 2 行 element.click() ^ SyntaxError:语法无效


虽然我没有看到语法错误。错误可能从哪里产生?而且功能使用好不好?


暮色呼如
浏览 123回答 1
1回答

有只小跳蛙

在 HTML 中,您可以用空格指定多个类:<span class="class1 class2">....</span>在selenium中,当搜索单个类时,只需使用类名之一:driver.find_element(By.CSS_SELECTOR, ".class1")此代码将使用 Selenium 打开网站并单击“搜索”按钮:from webdriver_manager.chrome import ChromeDriverManagerfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom selenium import webdriver# prevent version errors and plugin warning, may not be needed for youoptions = webdriver.ChromeOptions()options.add_argument("disable-extensions")options.add_argument("disable-plugins")options.experimental_options["useAutomationExtension"] = False  # prevent load error - Error Loading Extension - Failed to load extension from ... - Could not load extension from ... Loading of unpacked extensions is disableddriver = webdriver.Chrome(ChromeDriverManager().install(), options=options)# main codedriver.get('https://www.flashscore.com/')element = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".header__button--search")))driver.find_element(By.CSS_SELECTOR, ".header__button--search").click()
随时随地看视频慕课网APP

相关分类

Python
我要回答