首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Selenium问题-无法定位元素:{"method":"css selector","selector“-需要帮助解决此问题

Selenium问题-无法定位元素:{"method":"css selector","selector“-需要帮助解决此问题
EN

Stack Overflow用户
提问于 2021-08-28 13:52:23
回答 1查看 198关注 0票数 1

我需要修改这个代码。它附带了一条错误消息,说明

代码语言:javascript
运行
复制
 NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="login_username"]"}
  (Session info: chrome=92.0.4515.159)

以下是代码

代码语言:javascript
运行
复制
   from selenium import webdriver
    from selenium.webdriver.support.ui import WebDriverWait
    # finq credentials
    username = "xxxxxxx@gmail.com"
    password = "xxxxxxxxx"
    # initialize the Chrome driver
    driver = webdriver.Chrome(executable_path=r'C:\Users\snyder\data\chromedriver.exe')
    # head to finq login page
    driver.get("https://www.finq.com/en/login")
    # find username/email field and send the username itself to the input field
    driver.find_element_by_id("login_username").send_keys(username)
    # find password input field and insert password as well
    driver.find_element_by_id("login_password").send_keys(password)
    # click login button
    driver.find_element_by_name("submit_login").click()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-28 13:57:19

它在iframe中,所以你需要在交互之前切换到它。

您可以使用以下css_selector切换到iframe:

代码语言:javascript
运行
复制
iframe[id='login']

在代码中:

代码语言:javascript
运行
复制
username = "xxxxxxx@gmail.com"

driver = webdriver.Chrome(driver_path)
driver.maximize_window()
driver.implicitly_wait(5)
driver.get("https://www.finq.com/en/login")
wait = WebDriverWait(driver, 10)
wait.until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR, "iframe[id='login']")))
# find username/email field and send the username itself to the input field
driver.find_element_by_id("login_username").send_keys(username)
# find password input field and insert password as well
driver.find_element_by_id("login_password").send_keys(password)
# click login button
driver.find_element_by_css_selector("button[id='submit_login']").click()

导入:

代码语言:javascript
运行
复制
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68965002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档