2

我正在使用一些带有 Chrome 网络驱动程序的 python 代码来登录网站。

我通过 id 找到元素,然后输入用户名和密码。

它适用于第一个元素条目,无论是用户名还是密码,但不适用于以下元素。它被 id 语句卡在 find 元素上。

这是我的代码,

chromedriver = "C:\\Users\\testuser\\Desktop\\chrome\\chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
driver.get("https://*****/login/")
print 1 
Password1= driver.find_element_by_id("Password").send_keys("******")
print 2
Username1= driver.find_element_by_id("Username").send_keys("******")

代码在打印 2 后停止,它没有通过 id 检测第二个查找元素。

4

3 回答 3

0
  1. 在输入之前添加一些超时等待
  2. 或者当您的浏览器保存每个文件时,明智的做法是添加 blbla.clear(); 在 bla.sendkeys() 之前;
于 2013-06-18T13:12:59.737 回答
0

尝试添加调用click

elt = driver.find_element_by_id("Password")
elt.click()
elt.send_keys("******")
elt = driver.find_element_by_id("Username")
elt.click()
elt.send_keys("******")
于 2013-06-15T11:53:04.337 回答
0

1)使用WebDriverWait:

WebDriverWait 等待 = 新的 WebDriverWait(驱动程序, 30); wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("Username")));

2)或者也许bewebdriver无法在页面上找到元素,所以在这种情况下,使用其他定位器,如xpath。

希望它会帮助你:)

于 2013-06-16T05:52:05.060 回答