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

时间:2013-08-23 15:34:15

标签: 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');
    });
});

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

2 个答案:

答案 0 :(得分:10)

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

我发现的大多数文档都说明我们必须以WebElement的形式使用Actions,然后将其强制转换为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而且不需要强制转换。

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

How do you click on an element which is hidden using Selenium Webdriver?

SELENIUM WEBDRIVER – HOW TO CLICK ON A HIDDEN LINK OR MENU

Selenium WebDriver - hidden select and anchor [duplicate]

答案 1 :(得分:0)

只需添加到已接受的答案,下面的代码就对我有用。

导入声明:

import { browser, by, element } from 'protractor';

代码:

const hiddenElement = element(by.id('hiddenIcon'));
browser.driver.executeScript('arguments[0].click();', hiddenElement.getWebElement());

只需将hiddenIcon更改为元素的ID。

代替使用

var ptor = protractor.getInstance(); var driver = ptor.driver;

我们也可以使用

browser.driver