python-3.x - 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,任何帮助找出问题所在将不胜感激。
解决方案
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,如果找不到则超时。
推荐阅读
- algorithm - 在 O(log n) <= speed < O(n) 中双向搜索字典的算法
- birt - Eclipse BIRT Tomcat 7.041
- c# - 对指挥官建造者施加删除限制
- java - 当数据类型为抽象时,如何从 ArrayList 中删除项目?
- go - 简单的 HTTPS 请求:Golang 返回 505,Python 和 Chrome 工作
- android - Android firebase 数据库获取值总计
- angular - p-inputSwitch (onChange) 在 Firefox 中不起作用
- javascript - mongoose 在层 json 中找到 json
- jquery - JQuery 选项卡不是一个函数
- python - 熊猫:打印没有 dtype 信息