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