【问题标题】:How to get the element by css of the pdf icon, protractor testing如何通过pdf图标的css获取元素,量角器测试
【发布时间】:2016-03-15 08:24:33
【问题描述】:

我在锚标签中有一个 pdf 图像。我需要获取元素,然后我需要单击 pdf 链接。通过 Id 尝试使用元素,但元素不可见,但它是可见的。请帮助通过 css 获取元素,在这方面持续了近 2 天。

<div class="az content-block">

            <ol>
                <li>{{'check.ant.label'|text}}</li>
                <li>{{'check.bed.label'|text}}</li>
                <li>{{'check.hin.label'|text}}<a id="checkPdfLink" ng-href="{{check.pdf}}" target="_blank"><span class="az icon-pdf"></span></a></li>
            </ol>
</div>

【问题讨论】:

    标签: css angularjs protractor


    【解决方案1】:

    您是否尝试过使用 css 选择器?如果很难找到唯一 ID,请尝试右键单击 pdf 链接的检查元素,然后单击复制唯一选择器并尝试单击它。

    element(by.css('paste your Unique Selector here')).click();
    

    希望这会有所帮助。 :)

    【讨论】:

    • 试过这个它不起作用让元素不可见错误,但 pdf 是可见的。元素(by.css('.az.icon-pdf'));
    • 您确定 .az.icon-pdf 是您拥有的唯一选择器吗?您是否通过右键单击 pdf 的检查元素得到它?因为,大多数时候这种方法对我有用。 :)
    • 您可以添加应用的图片吗?所以,我可以更有帮助。 :)
    • 图片只是一个pdf图标图片
    • 好的。告诉我你是如何得到图像的 css 选择器的。 :)
    【解决方案2】:

    在一个简单的情况下,这只是:

    element(by.id("checkPdfLink")).click();
    

    但是,由于您收到“元素不可见”错误,可能有几个原因。第一,您可能实际上需要做一些事情来使元素可见 - 打开一个菜单或下拉菜单。另一个原因,可能是时间问题。等待become clickable的链接再点击:

    var EC = protractor.ExpectedConditions;
    var pdfLink = element(by.id("checkPdfLink"));
    browser.wait(EC.elementToBeClickable(pdfLink), 5000);  // wait up to 5 seconds
    
    pdfLink.click();
    

    【讨论】:

    • 现在5秒后超时。无法获取元素alecxe。
    • @user1645290 然后,该元素无法点击/可见。寒冷有多种原因。您确定在单击链接之前已完成所有操作以使链接实际可单击/可见 - 例如,打开必要的菜单、下拉菜单?
    • 它只是 pdf 图标,当我们加载 html 时将直接可见。如果您可以看到上面的代码,我正在尝试单击锚标记内的 pdf。
    • @user1645290 快速检查 - 如果您将 browser.driver.manage().window().maximize() 放在测试的开头,或者放在 onPrepare() 中,会有什么不同吗?
    • 它不工作 alecxe。我这里有个疑问,实际上pdf图标是通过css类生成的,然后pdf图标将可以使用锚标签点击,所以我们是否需要获取pdf图标的元素或锚链接ID才能点击。
    猜你喜欢
    • 2016-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    相关资源
    最近更新 更多