我遇到了Selenium WebDriver的问题.我尝试点击窗口页面外的链接(你需要向上滚动才能看到它).我目前的代码是相当标准的:
menuItem = driver.findElement(By.id("MTP"));
menuItem.click();
// I also tried menuItem.sendKeys(Keys.RETURN);
Run Code Online (Sandbox Code Playgroud)
我知道我可以向上滚动,在这种情况下它会起作用.但是如果你有很长的项目列表,你不一定知道你需要向下滚动多远.
有没有办法点击不在页面可见部分的链接(但滚动时会显示)?
作为旁注,我正在使用Firefox,但我打算也使用IE7/8/9和Chrome.
任何帮助将不胜感激.
编辑:我担心我不能提供源代码,因为我工作的公司不允许它,但我可以给出我想点击的链接的代码:
<div class="submenu">
<div id="MTP">Link title</div>
</div>
Run Code Online (Sandbox Code Playgroud)
链接可见时,完全相同的代码有效,只有当链接不可用时才能使用.
编辑2:实际上,奇怪的是,它不会引发任何异常,只是转到下一条指令.所以基本上,会发生什么:
menuItem = driver.findElement(By.id("MTP")); // no exception
menuItem.click(); // no exception
//... some code ensuring we got to the next page: timeout reached
driver.findElement(By.id("smLH")).click(); // NoSuchElementException, as we're on the wrong page.
Run Code Online (Sandbox Code Playgroud) 对于JS Unit测试,我需要检查双击是否按预期运行.问题是该事件是通过element.addEventListener注册的.由于某种原因,在这种情况下,element.ondblclick()不起作用.HTML:
<input type="image" src="pic.jpg" id="aa"/>
Run Code Online (Sandbox Code Playgroud)
Javasript:
document.getElementById('aa').addEventListener("dblclick", function(){alert('aa')});
document.getElementById('aa').ondblclick();
小提琴:http://jsfiddle.net/prZKy/
如果你双击图像,它可以工作,但javascript中的ondblclick()不起作用.
任何人都知道如何做到这一点?
我有以下架构:
var sampleSchema = new Schema({
name: String,
dates: [{
date: Date,
duration: Number
}]
});
Run Code Online (Sandbox Code Playgroud)
我需要根据以下规则过滤记录:如果其中一个日期晚于给定日期date_begin,请保留记录,否则不要.
我的印象是$ gte或$ lte是我需要的功能,但我找不到正确使用它们的方法.我试过了
sampleSchema.find({date_begin: {$gte: 'date'}});
Run Code Online (Sandbox Code Playgroud)
或者它的一些变体,但我似乎无法使它工作.任何人都知道我应该怎么做?
我目前在IE7中有一个错误,其中未定义被覆盖导致网站崩溃.它适用于Firefox,Chrome和IE8 +(我猜是因为那些浏览器不允许未定义被覆盖).
我正试图找到它的位置,以便能够保护我的代码.不幸的是,它不是我自己的代码.我试图在firebug中寻找"undefined =","undefined ="和"['undefined']",希望我发现哪个依赖正在改变覆盖它,但是没有成功.
我现在被困住了,我真的不知道还有什么可以尝试的.有没有人知道我能做些什么才能找到对此负责的代码行?
提前致谢!
我注意到这document.getElementById是Firefox和Chrome中的一个功能,同时typeof认为它是IE8中的一个对象(至少).
任何人都知道为什么?
我有一个按钮,其代码如下:
<input type="button" onclick="someFunction();" value="doSomething">
Run Code Online (Sandbox Code Playgroud)
我想在Selenium2中点击这个按钮.我设法获取元素,但click()函数在Chrome中不起作用.
我尝试直接在JavaScript上执行此操作,但它仍无法在Chrome中运行.
如果您直接单击该按钮,它就可以工作,它也适用于Firefox.
任何人都知道如何解决这个问题?
编辑:我忘记了我的例子中的括号.它们存在于"真实"代码中.
Edit2:用于模拟点击的Selenium 2代码是:
driver.findElement(By.tagName("input")).click();
Run Code Online (Sandbox Code Playgroud)
在有人问之前,页面中没有其他tagName"输入".
我想删除文件中的行.我知道你可以存储文件的内容(例如在矢量中),擦除行并再次写入.但是,它感觉非常麻烦,如果文件变大则效率不高.
谁知道更好,更有效,更优雅的方式呢?