繁体   English   中英

Selenium Python 库在登录页面上找不到元素

[英]Selenium Python library can't find elements on login page

我正在尝试为 Cisco Webex 控制中心制作网络抓取工具。 由于登录页面和后续页面使用 Javascript,因此我使用 Selenium Python 库来完成此操作。 不幸的是,我无法找到文本框并使用 Selenium 登录按钮元素。

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

# ブラウザを開く。
driver = webdriver.Chrome()
driver.get('https://admin.webex.com')

driver.find_element_by_class_name('md-input ng-pristine ng-invalid ng-touched').send_keys('email@address.com')

driver.find_element_by_class_name('md-panel__cta').click()

我还没有太多代码,但是我已经尝试了各种方法来查找元素,但是我尝试的任何方法都没有奏效。 有什么原因我找不到元素吗?

我已经继续前进并完成了密码输入页面的代码。 但是,Cisco 制作每个页面的方式各不相同,因此我无法重复使用用户名输入代码中密码输入部分的代码。

当一个元素有多个类时,用find_element_by_class_name('md-input ng-pristine ng-invalid ng-touched')这样的类来定位元素不是一个好主意。

在这种情况下,xpath 或 cssSelector 是一个不错的选择:

driver.find_element_by_xpath("//input[@name='email']")

您的问题是页面加载。 引起一些等待,否则您将错过该元素。

WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "input.md-input"))).send_keys("email@address.com")

进口

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM