【发布时间】:2020-07-27 16:04:56
【问题描述】:
我正在尝试使用 Dialog Container (Image of Dialog Container) 中的量角器与一些隐藏元素进行交互,所以我尝试了很多选项,但我没有成功。 (在 chrome 中测试)
我的设置: I/status - selenium 独立版本可用:3.141.59 [last]
I/status - 可用的 chromedriver 版本:2.46、77.0.3865.10、80.0.3987.16 [last]
I/status - geckodriver 可用版本:v0.26.0 [last]
I/status - IEDriverServer 不存在
I/status - android-sdk 不存在
I/status - appium 不存在
第一次尝试使用浏览器操作来翻页对话框并找到隐藏的元素:
placeSistema = element(by.css('element(by.css('[placeholder = "Sistema"]'))
this.clicaCampoSistema = async function () {
await browser.actions().sendKeys(protractor.Key.PAGE_DOWN).perform();
await placeSistem.click();
}
失败: sendKeysToActiveElement
第二次尝试使用 mouseMove 点击隐藏元素:
placeSistema = element(by.css('element(by.css('[placeholder = "Sistema"]'))
this.clicaCampoSistema = async function () {
await browser.actions().mouseMove(placeSistema).click().perform();
}
错误:超时 - 在 jasmine.DEFAULT_TIMEOUT_INTERVAL 指定的超时时间内未调用异步回调。
有人有建议吗?非常感谢!!!
- 解决方案:在社区的帮助下,我使用这段代码解决了我的问题
await browser.executeScript("arguments[0].click()", placeSistema);
效果很好!
【问题讨论】:
-
您的对话框不是本机浏览器对话框,而是自定义的 DIV 对话框。您不能依赖
click()或 'mouseMove()' 使其可见。你需要使用executeScript()来运行一个javascript sn-p,如果我能从我以前的项目中找到它,我会发布它。 -
谢谢@yong 我要等待解决方案。
-
@Nascimento,您是否尝试过 DublinDev 回答以使用 scrollIntoView()。他的回答就是我想说的。
-
我试过@yong。没有成功!
-
我找到了解决方案!等待
browser.executeScript("arguments[0].click()", placeSistema);效果很好,非常感谢您的帮助! @yong
标签: javascript selenium jasmine protractor selenium-chromedriver