为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

暮色呼如 2023-08-08 10:55:39
我尝试使用 Selenium 库单击标签 div 中的属性类容器。这是代码:from selenium import webdriverfrom selenium.webdriver.common.by import Bydriver = 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:语法无效虽然我没有看到语法错误。错误可能从哪里产生?而且功能使用好不好?
查看完整描述

1 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

在 HTML 中,您可以用空格指定多个类:


<span class="class1 class2">....</span>

在selenium中,当搜索单个类时,只需使用类名之一:


driver.find_element(By.CSS_SELECTOR, ".class1")

此代码将使用 Selenium 打开网站并单击“搜索”按钮:


from webdriver_manager.chrome import ChromeDriverManager

from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

from selenium import webdriver


# prevent version errors and plugin warning, may not be needed for you

options = 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 disabled

driver = webdriver.Chrome(ChromeDriverManager().install(), options=options)


# main code

driver.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()

查看完整回答
反对 回复 2023-08-08
  • 1 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信