按元素查找并发送第二次不起作用的密钥

时间:2013-06-15 11:05:14

标签: python selenium selenium-chromedriver

我正在使用Chrome webdriver的一些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检测第二个查找元素。

3 个答案:

答案 0 :(得分: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("******")

答案 1 :(得分:0)

1)使用WebDriverWait:

  

WebDriverWait wait = new WebDriverWait(driver,30);   wait.until(ExpectedConditions.visibilityOfElementLocated(By.id( “用户名”)));

2)或者也许bewebdriver无法在页面上找到elment,因此在这种情况下,请使用其他定位器,例如xpath。

希望它能帮助你:)。

答案 2 :(得分:0)

  1. 在输入
  2. 之前添加一些等待超时
  3. 或当您的浏览器保存每个字段时,添加blbla.clear();在bla.sendkeys();
  4. 之前