首页 > 解决方案 > 将变量传递给 By.CSS_SELECTOR,得到 InvalidSelectorException Python

问题描述

我正在尝试将变量传递给函数并将它们插入到 Find_element(By.CSS_Selector...) 语句中。当数据被硬编码时,语句有效,当我插入变量时它失败。

该声明有效:

Def makeTee()
   driver.find_element(By.CSS_SELECTOR, ".rwdTr:nth-child(65) select").click() 

当我尝试将变量传递给函数并将其插入到同一个语句 CSS_SELECT 中时,它会因 InvalidSelectorException 而失败。

Def makeTee(teeTime)
    driver.find_element(By.CSS_SELECTOR, ".rwdTr:nth-child(teeTime) select").click() 

teeIndex = 65
makeTee(teeIndex)

我尝试在一个非常简单的替换示例中使用格式,但仍然没有运气。

Def makeTee()
    driver.find_element(By.CSS_SELECTOR, ".rwdTr:nth-child({}) select").format(65).click() 

makeTee()

标签: pythoncss

解决方案


由于 find_element 需要一个字符串作为第二个参数,因此您的 .format 应该应用于字符串,而不是 find_element 的返回。

例如driver.find_element(By.CSS_SELECTOR, ".rwdTr:nth-child({}) select".format(65)).click()


推荐阅读