选择带有流体ID的WebElement?

时间:2013-08-15 16:02:57

标签: java webdriver selenium-webdriver testng

我有一个应用程序,我正在尝试使用WebDriver进行测试。在一个页面上,用户选择数据源和其他一些选项,然后单击下一步。当用户单击下一步时,会向他们显示一个页面,其中包含在提交请求之前必须上载的文档列表。

在包含他们必须上传的文档的页面上,我试图获取文档的名称,然后将它们与电子表格进行比较,该电子表格包含基于用户选择的数据源的所需文档列表。

这是我的问题,我试图从网站上获取文档名称。我首先尝试了

String docOne = driver.findElement(By.xpath(/html/body/div[2]/div/div[2]/div/div[4]/div[2]/div/div/div/div/div[2]/div/div/div/h5)).getAttribute("textContent").toString();
System.out.println(docOne);

当我运行它时,它找不到元素。

然后我尝试了以下内容:

String docOne = driver.findElement(By.xpath("id('41027')/div[1]/h5")).getAttribute("textContent").toString();
System.out.println(docOne);

当我运行它时,它找不到该元素,然后我手动测试了这个并发现每个新请求都有一个新的ID,即使我测试的第一个xpath没有改变。

我的问题是,我如何让它发挥作用?因为每次运行测试时元素都会改变吗?

1 个答案:

答案 0 :(得分:0)

我今天早上显然有一些脑胀气。

当自动点击下一步到达文档页面时,页面一直滚动到底部,显然无法找到顶部元素。我放了30秒的长时间延迟并手动滚动到页面顶部,测试通过我提到的第一个xpath传递。

因此,我选择了一个始终可见的网络元素,并告诉它使用向上翻页命令执行发送键,并且它可以游泳。