Protractor: Click on SVG element not work

2k views Asked by At

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

There are 2 answers

1
Nathan Thompson On

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();
0
Silvan Bregy On

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