9

有没有办法点击子菜单中的隐藏值。我希望能够做类似的事情

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

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

4

2 回答 2

11

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

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

好吧,这里有相同的种类,但有一些修改。

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,也不需要强制转换。

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

如何单击使用 Selenium Webdriver 隐藏的元素?

SELENIUM WEBDRIVER – 如何点击隐藏的链接或菜单

Selenium WebDriver - 隐藏的选择和锚点[重复]

于 2013-08-29T07:38:44.217 回答
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 驱动程序 = ptor.driver;

我们也可以使用

浏览器驱动程序

于 2020-04-09T07:14:44.637 回答