【问题标题】:Protractor: Click on SVG element not work量角器:单击 SVG 元素不起作用
【发布时间】:2015-09-05 14:09:21
【问题描述】:

我正在使用量角器测试一个 angularjs 应用程序。

我需要测试对 SVG 元素的点击。

量角器可以找到元素,它可以在元素上运行点击,但是点击之后什么都没有发生。

点击后应该会换页。

代码是

el=element(by.xpath('(//*[local-name()="g" ]//*[local-name() = "rect"])[1]'))
    browser.actions().mouseMove(el.getWebElement()).click().perform();

【问题讨论】:

  • 什么是elel.click() 会发生什么?你也可以做一个可重现的例子来证明这个问题吗?谢谢。
  • 只需创建一个 svg(例如,拿一个 highcharts 库的演示,将其复制并粘贴到 ng-app 中,然后就完成了),并在其上进行测试。 el 是元素(by.xpath('(//*[local-name()="g" ]//*[local-name() = "rect"])[1]'))。我用什么 el 编辑了问题

标签: angularjs testing svg protractor end-to-end


【解决方案1】:

这仍然是一个问题。根据 github 问题 browser.actions() 应该被使用。以下解决方案终于为我解决了:

await browser.driver.actions().mouseMove(element(by.css('YOUR_LOCATOR')).getWebElement()).perform();
await browser.actions().click().perform();

https://github.com/angular/protractor/issues/2272

https://github.com/angular/protractor/issues/4495

【讨论】:

    【解决方案2】:

    我同意@alecxe 在他的评论中提出的建议。您应该在元素本身上调用 click()

    var el = element(by.xpath('(//*[local-name()="g" ]//*[local-name() = "rect"])[1]'));
    el.click();
    

    【讨论】:

    • 有什么解决办法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2016-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多