我们对元素的定位已经非常熟悉了,不过有时候我们需要定位一组对象,这时候如果还是一个一个的定位元素势必非常的麻烦。
那如果可以一次性定位一组对象呢?
我们直接以hao123页面中百度的标签为例子,定位到每个标签,并获取每个标签的Text值。看看如何用holmos定位和操作元素。
1.新建个Page类,我这边就取名叫Hao123Page.java,内容放空写个构造方法就行具体代码如下:
import com.holmos.webtest.struct.Page;
public class Hao123Page extends Page {
public Hao123Page() {
super ();
this .comment = "hao123首页";
this .init();
}
}
2.新建个测试类,这边取名叫Hao123PageTest.java。具体代码如下:
import java.util.List;
import org.junit.Test;
import com.holmos.webtest.EngineType;
import com.holmos.webtest.element.Element;
import com.holmos.webtest.element.locator.Locator;
import com.holmos.webtest.utils.HolmosWindow;
public class Hao123PageTest {
public Hao123Page hao123 = new Hao123Page();
@Test
public void listElement() {
HolmosWindow. openNewWindow(EngineType. WebDriverChrome, "http://www.hao123.com" );
Locator locator = new Locator(); //实例化个元素定位器
locator.addXpathLocator( "html/body/div[3]/div/div[2]/div[2]/div[1]/div[2]/a" );// 用xpath定位到所有的标签元素
List<Element> elements = hao123 .findElements(locator);
for ( int i = 0; i < elements.size(); i++) { //elements.size()是计算出总共有多少个元素
elements.get(i).setComment( "百度标签" ); // 给买个标签取名
elements.get(i).getText(); // 打印出每一个元素的Text
}
HolmosWindow. closeAllWindows();
}
}
运行结果直接看Holmos控制台打出的logo:
我们发现这次的定位不再放在Page类,而是放在了测试类,这也是我目前碰到holmos中唯一没把页面元素定位放Page类的情况。