我正在创建一个简单的硒脚本来输入用户名和密码来登录。这是我的代码:
driver = webdriver.Chrome(executable_path=r'C:\\Users\\Aspire5\\Downloads\\chromedriver_win32\\chromedriver.exe')
driver.get("https://ven02207.service-now.com/")
username = driver.find_element_by_xpath('//*[@id="user_name"]')
username.send_keys('username')
password = driver.find_element_by_xpath('//*[@id="user_password"]')
password.send_keys('this_is_password')
但是我遇到以下异常:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="user_name"]"}
我正在通过代码访问this网站。我在代码中提供的XPath存在于页面上,但仍返回No Such Element Exception
。
答案 0 :(得分:1)
您需要首先切换到框架。.由于input
标签位于框架内部
frame = driver.find_element_by_xpath('//*[@id="gsft_main"]')
driver.switch_to.frame(frame)
driver.find_element_by_id('user_name').send_keys('sarthak')
driver.find_element_by_id('user_password').send_keys('sarthak')
答案 1 :(得分:0)
您需要等待元素出现在DOM中。因此,尝试等待获取Web元素 driverwebdriver.Chrome(executable_path = r'C:\ Users \ Aspire5 \ Downloads \ chromedriver_win32 \ chromedriver.exe')
driver.get("https://ven02207.service-now.com/")
username = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, "//*[@id="user_name"]"))
username.send_keys('username')
password = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, '//*[@id="user_password"]'))
password.send_keys('this_is_password')
答案 2 :(得分:0)
只使用转义斜杠就可以了
'//*[@id=\"user_name\"]'
'//*[@id=\"user_password\"]'
答案 3 :(得分:0)
我陷入了同样的问题。您可以借助xpath对其进行修复。使用xpath获取元素。