这是硒的怪事吗?

问题描述 投票:0回答:1

下面这段代码运行没有错误:

from selenium import webdriver
from selenium.webdriver import ChromeOptions
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

options = ChromeOptions()
options.add_argument("--headless")

selectors = [
    'img[alt=Google]',
    'img[alt="Google"]'
]

with webdriver.Chrome(options=options) as driver:
    driver.get("https://www.google.com")
    wait = WebDriverWait(driver, 5)
    for selector in selectors:
        t = By.CSS_SELECTOR, selector
        wait.until(EC.presence_of_element_located(t))

注意 CSS 选择器的两种形式略有不同。

我一直明白,明确的语法是:

'img[alt="Google"]'

注意双引号。

我确定在 selenium 4.22.0 (Python 3.12.4) 中以下语法也适用:

'img[alt=Google]'

不是缺少双引号。

所以我的问题是省略双引号是否符合CSS标准,或者这是selenium特有的东西?

python css selenium-webdriver css-selectors
1个回答
0
投票

感谢@David(他找到了我无法理解的文档),如果属性值包含空格或特殊字符,则似乎必须用引号引起来。请参阅此处

© www.soinside.com 2019 - 2024. All rights reserved.