You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python的Selenium库在kingdoms.com输入登录凭证并定位元素

Selenium定位kingdoms.com登录元素解决方案

首先修正现有代码的基础错误

你现有代码存在2个语法/API使用问题:

  • driver = get(baseURL)写法错误,正确调用方法是driver.get(baseURL)
  • 你用到的find_element_by_xpath、find_element_by_class_name等方法在Selenium 4.0+版本已被正式移除,需统一使用By系列定位方法,使用前先导入依赖:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

推荐的定位方案

定位失败的核心原因是页面动态渲染延迟,元素未完成加载就执行了定位逻辑,优先使用显式等待+稳定属性定位,优先顺序如下:

  • 首选带唯一标识的属性定位:如果登录按钮/链接有id、data-testid等全局唯一属性,直接用By.ID、By.CSS_SELECTOR匹配对应属性值,稳定性最高
  • 次选文本匹配定位:如果登录入口的文本固定,用xpath匹配文本内容,写法参考:
# 等待登录元素可点击后再执行点击操作
login_elem = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.XPATH, '//*[text()="登录"]')) # 把文本换成页面实际显示的登录入口文本即可
)
login_elem.click()
  • 备选class+组合属性定位:如果需要用class匹配,要确认class是全局唯一的,多class组合的写法参考:
# 假设登录元素的class为"login-btn primary"
login_elem = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.CSS_SELECTOR, '.login-btn.primary'))
)

完整可运行参考代码

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

PATH = "D:\chromedriver.exe"
driver = webdriver.Chrome(PATH)
# 隐性等待全局配置,可选
driver.implicitly_wait(5)

baseURL = "https://www.kingdoms.com/#logout"
driver.get(baseURL)

print(driver.title)

# 替换对应定位参数即可使用
login_elem = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.XPATH, '//*[text()="登录"]'))
)
login_elem.click()

其他排查方向

如果加了等待还是定位不到,检查元素是否嵌套在iframe内,如果是需要先切换到对应iframe再执行定位操作。

内容的提问来源于stack exchange,提问作者Mario Hooi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 04:09:02