繁体   English   中英

Selenium WebDriver Python:如何在发送字符串后阻止'send_keys'命中return

[英]Selenium WebDriver Python: How to stop 'send_keys' from hitting return after sending a string

我正在尝试使用Twitter自动登录网站,并使用Selenium WebDriver中的elem.send_keys("username")方法输入Twitter登录信息。

该方法似乎在发送字符串后也“命中”了输入,这是一个问题,因为它会导致在我输入密码之前提交登录表单,并且页面会刷新,删除已经输入的用户名,从而阻止登录。

我如何发送密钥而不随后又输入? 谢谢。

Python:3.4.1,Selenium:2.42.1,操作系统:Mac OSX 10.9.4

编辑:

这是我在浏览器中编写所有与元素的交互的方式,并包装在try / except中,以防止StaleElementReference错误:

found = False
while not found:
    try:
        enterPassword = driver.find_element_by_id("password")
        enterPassword.send_keys(twPassword)
        found = True
    except:
        pass

这可能是问题吗?

您能测试一下这是否提交了吗? (不是我的)

from selenium import webdriver as driver

browser = driver.Firefox()
browser.get("http://www.google.com")
print browser.find_element_by_name("q").send_keys('Searchstring')

从侧面看:等待元素出现需要进行明确的等待。

from selenium.webdriver.support import expected_conditions as EC

wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.ID,'someid')))

阅读文档

暂无
暂无

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

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