目前我正在使用量角器和Selenium网络驱动程序。
我有以下问题:
我有一个html页面,我让量角器点击一个按钮。然后弹出一个窗口。此窗口包含一个文本框,其中包含名称"描述":
<input type="Text" name="Description" ... />
现在,当我尝试以下内容时:
element(by.css('[name="Description"]')).sendKeys("rabbababab");
浏览器什么都不做,但量角器不会抛出错误。 TextBox中没有输入任何文本。不幸的是,名称是识别input-TextBox的唯一方法。
我做错了什么?
答案 0 :(得分:7)
直接按名称选择也适用:
element(by.name('Description')).sendKeys("rabbababab");
答案 1 :(得分:2)
好的伙计们,我发现了这个问题。
它不是一个警报,它只是一个div,所有其他控件都被锁定用户输入。但是Dialog包含一个TextBox,它具有相同的css属性。因此,量角器只是写入覆盖的TextBox,我无法看到它......
问题解决了
答案 2 :(得分:1)
有时,如果该元素位于iframe内,则必须切换到该iframe。只需检查是否有任何iframe或模态可用?
否则你的代码似乎是正确的。
答案 3 :(得分:0)
量角器中有一个内置的提示处理程序,您可以在其中识别它,然后将数据发送到您想要的输入字段。这是如何 -
browser.Alert.sendKeys("rabbababab");
注意:弹出窗口应该有一个输入,它可以接受一些数据到其中,否则你的命令将失败。
如果上述解决方案不起作用,请尝试通过切换到弹出窗口然后向其发送文本来发送数据。这是如何 -
browser.driver.switchTo().alert().sendKeys('rabbababab');
如果有很多提示,那么您可以使用窗口句柄功能切换到您想要的那个。这是如何 -
browser.getAllWindowHandles().then(function(handles){
browser.switchTo().window(handles[1]).then(function(){ //change the array index based on your pop-up's count
element(by.css('[name="Description"]')).sendKeys("rabbababab");
});
});
希望它有所帮助。
答案 4 :(得分:0)
也许你有多个对象名称=&#34;描述&#34;在你的申请中。 你可以在Chrome中找到它:
输入[name =&#34;说明&#34;],看看它找到了多少结果。
元素(by.css(&#39; [名称=&#34;说明&#34;]&#39;))
与
相同$('[name="Description"]')
如果您找到多个,则可以尝试以下操作: 1.在向其发送密钥之前,尝试单击该字段
2
// This will search for the element of input with the name="Description" attribute
$('input[name="Description"]').sendKeys('rabbababab');
3。 在向其发送密钥之前,您可以尝试放入以下行: browser.waitForAngular(); //等到角度应用加载
让我们知道它是如何运作的。
答案 5 :(得分:0)
尝试使用它, $('input [name = Description]') .sendKeys(“ rabbababab”); 要么 element(by.css('input [name = Description]')) .sendKeys(“ rabbababab”);