量角器通过名称标签获取元素
protractor get element by name tag
目前我正在使用量角器和Selenium web Driver。
我有以下问题:
我有一个html页面,我让量角器点击一个按钮。然后弹出一个窗口。此窗口包含一个名称为"Description"的文本框:
<input type="Text" name="Description" ... />
现在,当我尝试以下操作时:
element(by.css('[name="Description"]')).sendKeys("rabbababab");
浏览器什么都不做,但量角器不抛出错误。没有文本输入到文本框中。不幸的是,名称是识别输入文本框的唯一方法。
我做错了什么?
直接按名称选择也可以:
element(by.name('Description')).sendKeys("rabbababab");
好了,伙计们,我找到问题了。
这不是一个警告,它只是一个div,所有其他控件都锁定了用户输入。但对话框覆盖了一个文本框,它具有相同的css属性。所以量角器只是写入覆盖的文本框,我看不见它…
问题解决了
有时,如果该元素在iframe内,则必须切换到该iframe。只要检查是否有可用的iframe或modal ?
在protractor中有一个内置的提示处理程序,您可以在其中识别它,然后将数据发送到您想要的输入字段。-
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");
});
});
希望能有所帮助。
也许您的应用程序中有多个name="Description"的对象。你可以在Chrome中找到:
- 右键单击对象
- 点击Inspect元素
- 按CTRL + F
输入[name="Description"],看看能找到多少个结果。
元素(by.css ([name = "描述"]))
与
相同$('[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 ();//等待,直到angular应用加载
$("输入[name =描述]") .sendKeys("rabbababab");或元素(by.css(输入[name =描述])) .sendKeys("rabbababab");
- 从模板标签获取html
- 如何从给定的用户和给定的标签中获取所有推文
- 从h1标签获取链接并使图片可下载
- 如何从标题标签获取 A1 表示法的列范围
- 从gmail帐户按标签获取所有消息
- 广告词脚本-按标签获取广告
- 从li标签获取图片来源
- 如何通过标签获取推文
- 量角器通过名称标签获取元素
- 通过aria标签获取HTML元素
- 如何从img标签获取列表SRC
- 从ownerNode(样式标签)获取样式表对象
- 从多个span标签获取标题值
- 从标题标签获取标题
- 从段落标签获取值
- 使用JavaScript从对象标签获取视频Url
- Python:从html的href标签获取javascript文件
- 从锚(a)标签获取本地href值
- 通过点击anchor标签获取anchor的值
- jQuery从动态标签获取属性