python - selenium.common.exceptions.InvalidSelectorException : Message: invalid selector: An invalid or illegal selector was specified

标签 python selenium

我正在尝试制作一个随机回答kahoot的脚本,一切正常,但是当脚本必须单击“下一步”按钮时,我收到此错误:'selenium.common.exceptions.InvalidSelectorException:消息:无效的选择器:指定了无效或非法的选择器' 我尝试搜索此错误,但没有显示与我的脚本相关的内容。

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

最佳答案

您试图在此处按类名查找元素,但为 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

关于python - selenium.common.exceptions.InvalidSelectorException : Message: invalid selector: An invalid or illegal selector was specified,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61942470/

相关文章:

归并排序算法的Python实现

python - 如果元素不遵循 'if' 'or' 语句,则从列表中删除它们

java - 使用 Java 中的 Selenium 读取文本并单击表格的特定行

c# - 需要使用 C# 到达嵌入到 HTML 中的 Flash 影片的结尾

python - 如何增加列表中每个项目/元素的值?

python - 我如何通过python中的ssh隧道连接到服务器

python - 带有 phantomjs 间歇性挂起/超时的 Django LiveServerTestCase

selenium - WebDriver 通过 xPath 查找元素,如果未找到元素,则不会超时,屏幕只是卡在那里。

java - 如何通过Selenium访问框架内的嵌套html

Python从MySQL中由Latin1_swedish_ci编码的数据库检索数据