当前位置: 首页 > 知识库问答 >
问题:

硒不能定位元素

澹台冯浩
2023-03-14

我正在使用selenium创建kahoot机器人泛滥器。(kahoot.it)我正在尝试使用selenium来定位输入框以及确认按钮。每当我尝试将它们定义为变量时,我都会得到这个。"命令引发了一个异常:TimeoutException: Message:",我认为这意味着我设置的5秒已过期,这意味着该元素从未被定位。

    for idr in tabs:
    num+=1
    drv.switch_to.window(idr)
    time.sleep(0.3)
    gameid = WebDriverWait(drv,5).until(EC.presence_of_element_located((By.CLASS_NAME , "sc-bZSQDF bXdUBZ")))
    gamebutton = WebDriverWait(drv,5).until(EC.presence_of_element_located((By.CLASS_NAME , "sc-iqHYGH eMQRbB sc-geEHAE kTTBHH")))
    gameid.send_keys(gamepin)
    gamebutton.click()
    time.sleep(0.8)

    try:
        nick = WebDriverWait(drv,5).until(EC.presence_of_element_located((By.CLASS_NAME , "sc-bZSQDF bXdUBZ")))
        nickbutton = WebDriverWait(drv,5).until(EC.presence_of_element_located((By.CLASS_NAME , "sc-iqHYGH eMQRbB sc-ja-dpGc gYusMa")))
        nick.send_keys(f'{name}{num - 1}')
        nickbutton.click()
    except:

我试图定位一个“Iframe ”,但并不成功(可能做错了),但我已经搜索了几个小时,没有找到任何答案。任何帮助都将不胜感激。

共有1个答案

车靖琪
2023-03-14

输入按钮标记的类名中有空格。

对于输入标记,您可以使用 name 属性。对于按钮标签,您可以使用标签名称,因为它是DOM中唯一的按钮标签

gameinput = wait.until(EC.presence_of_element_located((By.NAME,"gameId")))
gameinput.send_keys("Sample Text")
submit = wait.until(EC.presence_of_element_located((By.TAG_NAME,"button")))
submit.click()

#It also worked with below line:
gameinput = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,".sc-bZSQDF.bXdUBZ")))
 类似资料:
  • 我正在使用selenium测试脚本。我得到以下错误和这个错误随机发生。当我跑10次时,我会得到大约两次。所以它不是真的可复制的。有人知道为什么会这样吗?我试图单击的元素在浏览器中绝对可见,并且不会四处移动,因此不需要调整大小或拖动元素。我正在使用chrome webdriver,我阅读了其他故障排除策略(调试“Element is not clickable at point”错误),它们似乎与我

  • 我正在尝试为以下内容定位元素: 我尝试了XPath和CssSelector,但它无法定位元素。有人能帮我找到元素TIA吗

  • 我正在尝试点击图中所示的下拉菜单 这就是我尝试过的 但它给了我这个错误 NoSuchElementException: Message:找不到element://div[@ class = ' choosed-container choosed-container-single ']//a[@ class = ' choosed-single choosed-single-with-deselec

  • 我用selenium和python一起使用,我试图点击一个按钮,但它似乎不起作用。下面是html结构的图片: 这里 我已经尝试通过xpath和类单击该按钮,但没有成功。它也没有给我一个错误。我为每一个答案感到高兴!

  • 我正在尝试自动“Tableau”登录屏幕和下载报告流程。在我到达“下载”按钮之前一切正常。第一个问题是我无法右键单击下载按钮并在Chrome进行“检查”,这很奇怪。我不知何故能够通过浏览整个页面来找到xpath。当我尝试单击它时,我得到“由:org.openqa.selenium.NoSuchElementException引起:没有这样的元素:无法定位元素:{"方法":"xpath","sele

  • 我正在尝试使用以下结构单击element: 但是,这将抛出。 我当前正在使用:刮取(父)元素列表。这标识了正确的元素列表(按预期工作)。有了列表后,我应用以下函数: 使用: 而且 但是,这将触发。 我对此进行了几个小时的研究,基于几个帖子,我添加了“。”在两个斜杠之前,这表示相对于父级(而不是相对于整个DOM)。 如果我移除这个点,我总是得到页面上的第一个元素--而不是列表中每个父元素的子元素。