PhantomjsDriver操作表单元素

Gooooooo 发布于 2015/10/29 17:26
阅读 1K+
收藏 0

@傅小黑 你好,想跟你请教个问题:在Java中,用phantomjsdriver请求页面,加载页面后,调用element.sendKeys方法为input元素赋值,主要代码如下:

DesiredCapabilities caps = DesiredCapabilities.phantomjs();
caps.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS,new String[] {"--load-images=false"});
caps.setCapability("phantomjs.page.settings.userAgent","Mozilla/5.0 (Windows NT 10.0; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0");
caps.setCapability("takesScreenshot","false");
WebDriver driver = new PhantomJSDriver(caps);
driver.get("http://weibo.com/");
WebElement ele = WebDriverUtils.until(driver,12000,ByType.xpath,"//div[@id='pl_login_form']/div[3]/div[2]/div[1]/div/input");
ele.sendKeys(username);



控制台提示图片中的错误,请问这个问题有什么解决方法?

加载中
0
傅小黑
傅小黑

他字面意思是说这个 元素还不可操作

可能是有异步加载的吧,需要等加载出来才能操作

0
yongzhong
yongzhong
你是想操作微博吗?试试先点击这个元素再赋值
0
Gooooooo
Gooooooo
应该不是这个问题,我实现的功能是登陆新浪微博,使用firefox可以正常运行,但切换到PhantomjsDriver就报这个错误了。而且代码中也加入了充足的等待时间以确认待操作元素成功加载
0
Gooooooo
Gooooooo

引用来自“傅小黑”的评论

他字面意思是说这个 元素还不可操作

可能是有异步加载的吧,需要等加载出来才能操作

应该不是这个问题,我实现的功能是登陆新浪微博,使用firefox可以正常运行,但切换到PhantomjsDriver就报这个错误了。而且代码中也加入了充足的等待时间以确认待操作元素成功加载
0
Gooooooo
Gooooooo

引用来自“页永仲”的评论

你是想操作微博吗?试试先点击这个元素再赋值
对的,微博登陆。刚刚试了一下,执行那个元素的点击事件同样会报这个错误。。。
0
傅小黑
傅小黑
那我就不知道咯。。可能你先查出这个元素来看看他相关信息,再来看可不可以操作
0
vekygg
vekygg
最近我也在做这个,同样出现了问题,不知道是否解决了?
0
vekygg
vekygg
可能出于安全考虑,这个是不允许的。半自动吧,先人工登录再爬取
返回顶部
顶部