Protractor: Click on SVG element not work

2019-04-15 10:50发布

I am testing an angularjs App using protractor.

I need to test the click on an SVG element.

Protractor can find the element, it can run the click on the element, but after the click nothing happens.

It should change page after the click.

The code is

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

2条回答
SAY GOODBYE
2楼-- · 2019-04-15 11:22

I agree with what @alecxe suggested in his comment. You should be calling click() on the element itself:

var el = element(by.xpath('(//*[local-name()="g" ]//*[local-name() = "rect"])[1]'));
el.click();
查看更多
祖国的老花朵
3楼-- · 2019-04-15 11:22

This is still an issue. According to github issues browser.actions() should be used. Following solution finally worked out for me:

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

查看更多
登录 后发表回答