Python Selenium 无法定位元素
Posted
技术标签:
【中文标题】Python Selenium 无法定位元素【英文标题】:Python Selenium Unable to locate element 【发布时间】:2017-11-27 18:54:13 【问题描述】:我正在尝试制作一个 Python 程序来自动登录我学校的网站。但是,我返回一个错误:
selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法找到元素:"method":"xpath","selector":"//*[@id="loginidtext"]"
抛出错误的相关代码部分是:
BCnumber = driver.find_element_by_xpath('//*[@id="loginidtext"]')
BCnumber.send_keys('loginid')
该网站是: https://matrix.tjc.edu.sg/?topleft=toprow.php&bottomright=bottomrow.php
我尝试过使用:
driver.switch_to
切换到相关的div却返回同样的错误...
【问题讨论】:
第二个框架内的 loginidtext 字段。所以,我们需要切换到索引为 1 和更高的 sendkeys 的帧 【参考方案1】:这是您问题的答案:
由于定位器//*[@id="loginidtext"]
在topwindow
iframe内,所以我们必须先切换到iframe,如下:
from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
binary = FirefoxBinary('C:\\Program Files\\Mozilla Firefox\\firefox.exe')
driver = webdriver.Firefox(firefox_binary=binary, executable_path="C:\\Utility\\BrowserDrivers\\geckodriver.exe")
driver.get('https://matrix.tjc.edu.sg/?topleft=toprow.php&bottomright=bottomrow.php')
driver.maximize_window()
driver.implicitly_wait(20)
driver.switch_to.frame("topwindow")
BCnumber = driver.find_element_by_xpath('//*[@id="loginidtext"]')
BCnumber.send_keys('loginid')
如果这能回答您的问题,请告诉我。
【讨论】:
您是否执行了代码并检查它是否正常工作?因为它不适合我。 @RAJ 你发现错误了吗?你在哪里看到错误?谢谢 元素不存在抛出错误!您是否执行了程序并检查了它?它为你传递了吗?以上是关于Python Selenium 无法定位元素的主要内容,如果未能解决你的问题,请参考以下文章
无法在 python selenium 中使用 selenium chrome webdriver 定位元素