我们正在使用RAP和Eclipse SWT在浏览器中呈现我们的应用程序UI。 我们希望使用selenium自动化应用程序测试,这需要每个HTML组件的ID。 但问题是小部件(在这种情况下是文本)没有" id"作为浏览器中可见的属性。
我们尝试使用以下文本小部件的setData方法,但仍然在浏览器中看不到id属性。
tf_offerId.setData(SWT.SKIN_ID, "myId1");
tf_offerId.setData(SWT.SKIN_CLASS, "myClass");
以下是我们的示例代码。
class A {
private Text tf_offerId;
void method1() {
Composite comp_left = new Composite(this, SWT.NONE);
Composite comp = new Composite(comp_left, SWT.NONE);
GridLayout gl_comp = new GridLayout(3, false);
gl_comp.marginWidth = 0;
comp.setLayout(gl_comp);
comp.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false,1, 1));
Label lbl = new Label(comp, SWT.NONE);
lbl.setText("Offer Id / Cluster Id");
lbl.setBackground(new Color(getDisplay(),220,220,220));
lbl.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1));
tf_offerId = new Text(comp, SWT.BORDER);
tf_offerId.setLayoutData(new GridData(SWT.FILL, SWT.CENTER,true, false, 1, 1));
tf_offerId.setToolTipText("Usage:\nsss_pricing/se_configuration-OfferId\nse_calculation-OfferId\nsss_build/sss_validation-ClusterId");
}
}
请建议可能的解决方案。
答案 0 :(得分:1)
要在客户端识别窗口小部件,最好定义一个专用的测试属性,其中包含用于测试的ID。使用此ID,可以在Selenium中识别窗口小部件。
可以在此处找到有关在客户端识别小部件以便使用Selenium进行测试的各种替代方法的讨论: