Python 3.x 基于余烬的找硒元素
我正在chrome浏览器上使用python 3.6中的selenium。我已经将其编程到可以访问我想要的网站的程度,但我正在努力找到我正在搜索的文本框元素。当我检查元素时,它有这个代码Python 3.x 基于余烬的找硒元素,python-3.x,selenium,xpath,css-selectors,webdriverwait,Python 3.x,Selenium,Xpath,Css Selectors,Webdriverwait,我正在chrome浏览器上使用python 3.6中的selenium。我已经将其编程到可以访问我想要的网站的程度,但我正在努力找到我正在搜索的文本框元素。当我检查元素时,它有这个代码 <input placeholder="" id="ember32" class="ssRegistrationField ssEmailTextboxField ember-text-field ember-view" type="email"> 我今天刚刚开始使用Selenium,如果您能帮我找
<input placeholder="" id="ember32" class="ssRegistrationField ssEmailTextboxField ember-text-field ember-view" type="email">
我今天刚刚开始使用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,基本类型
上面的代码将添加一个隐含等待5秒,搜索ember32,如果找不到它,则超时。所需元素是一个元素,因此要在元素上单击(),您必须诱导WebDriverWait使元素可单击()
,并且您可以使用以下任一选项:
- 使用
:CSS\u选择器
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.ssRegistrationField.ssEmailTextboxField.ember-text-field.ember-view[id^='ember'][type='email']"))).send_keys("Max")
- 使用
:XPATH
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@class='ssRegistrationField ssEmailTextboxField ember-text-field ember-view' and starts-with(@id,'ember')][@type='email']"))).send_keys("Max")
- 注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
工具书类 您可以在以下内容中找到一些相关的详细讨论:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC