元素不可见错误

3

我试图在我的页面上点击上传文件链接,但是上传链接被说成不可见。我尝试了悬停在链接上以及下面的代码。这在之前很容易解决,所以我真的很困惑如何去点击这个链接。

我尝试过:

var EC = protractor.ExpectedConditions;
var uploadLink = element(by.model('roomPlanCtrl.mm2010File'));

browser.wait(EC.elementToBeClickable(uploadLink), 10000);
uploadLink.click();

HTML:

<span class="dg-link ng-untouched ng-valid ng-dirty ng-valid-parse" ngf-select="" ng-model="roomPlanCtrl.mm2010File" accept=".mms" ng-hide="roomPlanCtrl.hideImportLinks">Upload a MeetingMatrix 2010 File</span>


你确定没有其他带有 ng-show="roomPlanCtrl.showImport2010Ctrls()" 的元素吗?你也尝试过最大化浏览器窗口了吗? - alecxe
你能否尝试在点击元素之前等待其可见?可能将等待与点击函数链接起来会有所帮助。 - giri-sh
@Alecxe 我上传了错误的 .html 和测试代码,我马上修复。非常抱歉。 - Nicole Phillips
@alecxe,我更新的代码搞砸了,非常抱歉。 - Nicole Phillips
@Girish 我更新了代码,之前的HTML和测试代码是错误的。 - Nicole Phillips
@alecxe 我试了最大化还是不行。 - Nicole Phillips
1个回答

7

如果您的元素不可见,那么您可以尝试滚动到该元素并单击它。如果在页面上可见,则等待其加载完成后使用wait()函数链接单击它。以下是一个示例 -

var EC = protractor.ExpectedConditions;
var uploadLink = element(by.model('roomPlanCtrl.mm2010File'));
browser.wait(EC.elementToBeClickable(uploadLink), 10000).then(function(){
    uploadLink.click();
});

希望它有所帮助。

我刚试了一下,悬停文本仍然显示为不可见,这很奇怪,因为在测试之外我可以点击它。 - Nicole Phillips

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接