我有一个关于硒的问题。
我的想法:
我的想法是制作一个登录到这个网站的Python脚本。Selenium将用户名和密码发送到HTML输入字段并提交
问题:
我的代码一直在说:
Message: no such element: Unable to locate element:
例如,我在google.com上尝试过这个代码,它很有效。为什么这个登录页面不起作用?有人能帮我吗?
我的Python代码:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
login_URL = ""
driver = webdriver.Chrome()
driver.get(login_URL)
time.sleep(5)
inputElement = driver.find_element_by_name('uname')
inputElement.send_keys(username)
time.sleep(20)
driver.close()
我不知道它在pyton中是如何工作的,我使用js但是尝试使用xpathdriver.find_element_by_xpath('your xpath'([可能再点击一次(('xpath element'(.click((-元素处于活动状态。使用后发送密钥******.send_keys('username'(
driver.switchTo((.frame(driver.findElement(By.xpath('xpath-frame'((-在js 中
如前所述,元素位于iframe
中。需要switch to frame
才能与元素交互。
最好应用显式等待。
# Imports required:
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
driver.get("https://nl.infothek-sptk.com/isps/infothek/?1043")
wait = WebDriverWait(driver,30)
wait.until(EC.frame_to_be_available_and_switch_to_it((By.NAME,"body_frame")))
wait.until(EC.element_to_be_clickable((By.NAME,"uname"))).send_keys("username@mail.com")
# Code to enter other fields.
# Switch back to default to interact with elements outside the iframe.
driver.switch_to.default_content()