Protractor: Click on SVG element not work

2019-04-15 11:01发布

问题:

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();

回答1:

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();


回答2:

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