首页 > 解决方案 > Selenium - 基于 ember 查找元素

问题描述

我在 chrome 浏览器上使用 python 3.6 中的 selenium。我已经将它编程到可以访问我想要的网站的程度,但我很难找到我正在搜索的文本框元素。当我检查元素时,它有这个代码。

<input placeholder="" id="ember32" class="ssRegistrationField ssEmailTextboxField ember-text-field ember-view" type="email">

但是当我尝试使用给定的 ID 时,它不起作用并说找不到。这是我的代码(没有我希望插入网站 URL 的文本):

from selenium import webdriver

browser = webdriver.Chrome('chromedriver.exe')

browser.get('')

email = browser.find_element_by_id("ember34")
email.send_keys('')

我今天刚开始使用 Selenium,任何帮助找出问题所在将不胜感激。

标签: python-3.xseleniumxpathcss-selectorswebdriverwait

解决方案


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

WebDriverWait(browser,5).until(
              EC.presence_of_element_located((By.ID,'ember32')))

browser.find_element(By.ID,'ember32').send_keys('Your_Email')

问题是 DOM 有 ember32,而您的程序正在寻找 ember34,Basic Typeo。

上面的代码会添加一个隐式等待 5 秒,搜索 ember32,如果找不到则超时。


推荐阅读