Internet Explorer,但是,任何形式输入后跟sendKeys的findElement只能工作一半时间。对于findElement,我们使用WebDriverWait,其中ExpectedCondition返回所需的元素,然后成功返回。但是,观察此元素上sendKeys的结果,我们通常看不到该字段。
填写HTML页面最初加载时最初加载的登录表单没有问题。这些问题似乎完全发生在通过异步请求刚刚加载了innerHTML更改的任何内容上。 (也许也不足为奇,Firefox也没有这些问题。)
在页面过渡后但执行findElement之前添加任意时间延迟似乎没有帮助。 (在看到异步请求完成设置innerHTML之后,我尝试等待了10秒钟,但仍然偶尔会出现问题。)
任何想法,这可能是什么,或者如何解决?
编辑:需要明确的是,这是在IE下使用Selenium 2 WebDriver进行的。
#1 楼
这听起来与我最近使用watir-webdriver处理的问题类似(如果您使用的是webdriver,则类似)。就我而言,我能够通过使用sendKeys在元素上单击(以选择它)来解决/解决方法。因此,我建议您可以在使用sendKeys之前尝试向元素发送一次点击。 :)#2 楼
driver.ExecuteScript(string.Format("document.getElementById('cred-password-inputtext').value='{0}';",password));
此解决方案解决了我的问题。
评论
这是在python / selenium / phantomjs中唯一对我有用的东西:driver.execute_script(“ document.getElementById('email')。value ='test';”);
– wbt11a
16-6-1,14:24
#3 楼
您可以尝试使用以下命令:send_keys(driver.find_element_by_css_selector('#select_something'), value)
此外,您需要将send_keys重新定义为:
def send_keys(元素,键):
键入密钥:
element.send_keys(key)
一键发送密钥更可靠,且错误更少。语法在python中。
评论
这是特定于IE的吗?是Selenium 1还是使用Webdriver的Selenium?
听起来与我最近使用watir-webdriver处理的问题类似(如果您使用的是webdriver,则类似)。就我而言,我能够通过在使用sendKeys之前在元素上单击(以选择它)来解决/变通方法。
它只是IE,在Selenium 2 WebDriver下。更新了文字以反映这一点。
@sean_robbins您的建议似乎可行。如果您可以将其推广为答案,我会将其标记为正确的答案。