Angularjs 在量角器端到端测试中单击隐藏元素的一种方法

Angularjs 在量角器端到端测试中单击隐藏元素的一种方法,angularjs,protractor,Angularjs,Protractor,是否有方法单击子菜单中的隐藏值。我希望能够做一些像 driver.findElement(protractor.By.xpath('/html/body/div/div/a')).mouseover.then(function() { ptor.findElement(protractor.By.className('name').getText().then(function(result) { expect(result).toBe('Me'); }); })

是否有方法单击子菜单中的隐藏值。我希望能够做一些像

driver.findElement(protractor.By.xpath('/html/body/div/div/a')).mouseover.then(function() {
    ptor.findElement(protractor.By.className('name').getText().then(function(result) {
        expect(result).toBe('Me');
    });
});

当菜单项不可见时,或者我们目前仅限于此。如果这是不可能的,那么目前是否有办法解决这个问题。

好的,经过漫长而痛苦的搜索,试图找到这个问题的答案,我终于在尝试回答另一个问题时找到了答案

我找到的大多数文档都解释说,我们必须以WebElement的形式使用操作,然后将其转换为Javascript,并通过click操作以数组的形式将脚本元素传递给它

这里也有同样的类型,但有一些修改

describe('', function() {
    var ptor = protractor.getInstance();
    var driver = ptor.driver;

    it('', function() {
        var hiddenElement = driver.findElement(protractor.By.yourchosenlocator(''));
        driver.executeScript("arguments[0].click()", hiddenElement).then(function() {
            expect(whatever).toMatch(whatever);
        });
    }, 30000);
});
正如您所见,webelement没有使用,也不需要强制转换

以下是帮助我寻找答案的来源


下面的代码适用于我,这是对公认答案的补充

进口声明:

import { browser, by, element } from 'protractor';
代码:

只需将
hiddenIcon
更改为元素的id即可

而不是使用

var ptor=pergrator.getInstance();var-driver=ptor.driver

我们也可以使用

浏览器驱动程序


我尝试了许多变体,但都无法实现。我正在执行
driver.executeScript(“参数[0].click()”,元素(by.css('.logout'))
,结果是
未知错误:{“errorMessage”:“'undefined'不是函数(计算'arguments[0].click()”)
您使用的是什么版本的量角器?较新的版本可能要求您使用ptor.executeScript或dragrator.executeScript。您能发布代码以便我能看到它并从中帮助您吗?我可以在
浏览器上找到它。executeScript
来自文档。我对何时使用
ptor
感到有点困惑<代码>驱动程序和
浏览器
…有大量的例子似乎有点混淆。这是因为量角器的更新版本。但是我相信它现在非常稳定,所以随着它的成熟,语法应该不会有太大的偏离。
const hiddenElement = element(by.id('hiddenIcon'));
browser.driver.executeScript('arguments[0].click();', hiddenElement.getWebElement());