有没有办法点击子菜单中的隐藏值。我希望能够做类似
的事情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');
});
});
当菜单项不可见时,或者我们目前是否受此限制。如果这是不可能的,那么目前是否有办法解决这个问题。
答案 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?
答案 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