我有一个弹出页面,需要单击一个按钮。弹出页面位于Angular中。
我需要单击的按钮是:
<button _ngcontent-c8="" class="btn btn-primary" type="button">Apply</button>
方法调用单击按钮所采用的路径如下:
TemplatePopupPage templatePopupPage = editTemplatePage.clickApplyToClientsButton();
pause(5000);
editTemplatePage = templatePopupPage.clickApplyButton(EditTemplatePage.class);
@SuppressWarnings("unchecked")
public <W> W clickClientSearchApplyButton(Class<W> expectedPage) throws Exception {
click(clientsApplyButton);
pause(2000);
return (W) expectedPage.getConstructors()[0].newInstance();
}
protected void click(WebElement element) {
String tagName = element.getTagName();
String attributeType = element.getAttribute("type");
if (tagName.equals("input")
&& (attributeType.equals("submit"))) {
element.submit();
return;
}
element.click();
}
public interface WebElement {
void click();
}
我尝试了几个xpath,它们都成功指向了按钮,例如:
@FindBy(xpath = "//div[@class='modal-footer']/button[text()='Apply']")
protected WebElement clientsApplyButton;
在click()方法的String tagName = element.getTagName();
行中一直失败。
错误消息是java.lang.NullPointerException
我认为这不是XPath的问题,因为当我检查页面时,XPath会在页面上找到元素。现在,该xpath存在其他元素。
我觉得它与 _ngcontent-c8 属性有关,因为我可以使用相同的click()
方法
答案 0 :(得分:0)
也许您可以尝试:@FindBy(xpath = "//div[@class='modal-footer']/button[con]")
protected WebElement clientsApplyButton;
答案 1 :(得分:0)
我可以在IDE中尝试一下,可以解决问题。这是屏幕截图