selenium 元素,常见,异常,无效选择器异常:消息:无效的选择器:指定了无效或非法的选择器

qxsslcnc  于 2023-02-04  发布在  其他
关注(0)|答案(2)|浏览(187)

我尝试制作一个随机回答kahoot的脚本,一切正常,但当脚本必须单击“下一步”按钮时,我得到了这个error:'selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: An invalid or illegal selector was specified'。我尝试搜索这个错误,但没有显示与我的脚本相关的任何内容。

import random
from selenium import webdriver
driver=webdriver.Firefox()
driver.get("kahoot link")
choices= ['//*[@id="challenge-game-router"]/main/div[2]/div[1]/span', '//*[@id="challenge-game-router"]/main/div[2]/div[2]/span', '//*[@id="challenge-game-router"]/main/div[2]/div[3]', '//*[@id="challenge-game-router"]/main/div[2]/div[4]']
try:
    sleep(5)
    nickname= driver.find_element_by_name('nickname')
    nickname.send_keys(username)
    enter = driver.find_element_by_xpath('//*[@id="challenge-game-router"]/main/section/div[1]/form/button').click()
finally:
    pass

for c in range(0, 3):
    try:
        driver.implicitly_wait(20)
        choice = driver.find_element_by_xpath(random.choice(choices))
        choice.click()
        driver.implicitly_wait(20)
        next = driver.find_element_by_xpath('/html/body/div/div/div/div/main/button')
        next.click()
    finally:
        pass
gv8xihay

gv8xihay1#

您试图在这里通过类名查找元素,但是提供了find_element_by_class_name函数的xpath,这就是它抛出无效选择器异常的原因。

next = driver.find_element_by_class_name('/html/body/div/div/div/div/main/button')

您应该提供有效的类名或改用find_element_by_xpath

carvr3hs

carvr3hs2#

我通过用Firefox而不是Google_Chrome复制Xpath解决了我的问题。

相关问题