Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在selenium中找不到元素_Python 3.x_Selenium_Web Scraping - Fatal编程技术网

Python 3.x 在selenium中找不到元素

Python 3.x 在selenium中找不到元素,python-3.x,selenium,web-scraping,Python 3.x,Selenium,Web Scraping,我试图使用SeleniumWebDriver在网站上输入ID和密码,但我的代码无效。它似乎找不到元素 我检查了HTML代码并找到了值 这是我的Python代码 input type="text" style="color:#000000; height: 16px; width:138px;ime-mode:inactive" name="id" autocomplete="off" tabindex="1" placeholder="아이디를 입력하십시오." value="" 从selen

我试图使用SeleniumWebDriver在网站上输入ID和密码,但我的代码无效。它似乎找不到元素

我检查了HTML代码并找到了值

这是我的Python代码

input type="text" style="color:#000000; height: 16px; width:138px;ime-mode:inactive" name="id" autocomplete="off" tabindex="1" placeholder="아이디를 입력하십시오." value=""
从selenium导入webdriver
driver=webdriver.Chrome('C:\Chrome\u driver\chromedriver.exe')
司机,上车http://hisnet.handong.edu/')
睡眠(0.5)
驱动程序。通过名称('id')查找元素。发送密钥('id')ㅁ')  
睡眠(0.5)
驱动程序。通过名称(“密码”)查找元素。发送密钥(“密码”)ㅁ')
这是HTML代码

input type="text" style="color:#000000; height: 16px; width:138px;ime-mode:inactive" name="id" autocomplete="off" tabindex="1" placeholder="아이디를 입력하십시오." value=""

有嵌套的框架可以协商

from selenium import webdriver
#from selenium.webdriver.common.by import By
#from selenium.webdriver.support.ui import WebDriverWait
#from selenium.webdriver.support import expected_conditions as EC

url = 'http://hisnet.handong.edu/'
driver = webdriver.Chrome()
driver.get(url)
driver.switch_to.frame(driver.find_element_by_css_selector("[name=MainFrame]"))
driver.switch_to.frame(driver.find_element_by_css_selector("[name=MainFrame]"))
driver.find_element_by_css_selector("[name=id").send_keys("banana")
driver.find_element_by_css_selector("[type=password]").send_keys("orange")
您可以对帧使用等待条件:

 WebDriverWait(driver, 5).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"[type=password]")))

我认为我对HTML不是很熟悉。你能再解释一点吗?回答很好。我正在删除我的答案,因为你的代码工作正常。请解释什么不工作意味着什么?我运行了这个,它填充了右边的两个框。当你检查HTML时,你会看到你的元素与一个父元素一起,父元素也是位于父元素中。要访问您的元素,您需要切换到这些元素。现代浏览器针对css进行了优化。css控制页面样式。这有助于快速响应web设计。因此,通过css选择器选择元素通常是获取元素的更快方法。