Selenium-如何遍历webPage以查找所有必要元素并执行Click Action

时间:2015-10-13 02:30:51

标签: c# selenium xpath selenium-webdriver webdriver

我有一个方法可以通过Xpath查找元素并执行Click操作,但是如果元素在下一页上可用,我该怎么做?我知道我可以找到下一页的xpath并单击它并查看它。但我也希望回到初始页面。

例如,我有xpath发现的20个元素:

IList<IWebElement> Test= SeleniumDriver.WebDriver.FindElements(By.Xpath(""));

如果上面会找到20个元素,那么我正在运行foreach循环。因此,它可以根据需要执行所有操作,但如果第一页只有10个元素,那么我如何进入下一页以查找剩余的元素。同样在&#34;测试&#34;我没有按顺序获得所有元素。所以我的foreach循环将找到前2个,可能是第3个,它试图找到将转到下一页,所以我必须转到下一页并找到该元素,验证它然后回到初始页面。

如果有任何简单的方法,请告诉我?

2 个答案:

答案 0 :(得分:1)

你可以编写像这样的逻辑

IList<IWebElement> Test= SeleniumDriver.WebDriver.FindElements(By.Xpath(""));
for each WebElement ele {
if(isElementPresent(ele) {
   do Operation with ele
}
 else {
   go to second page
}
if(isElementPresent(ele) 
   do Operation with ele
Go to 1st page

}

答案 1 :(得分:1)

如果您有包含信息的表格,您将有按钮到下一页(如果存在) 所以你需要做的是像你在while循环中那样获取元素,并检查是否存在下一个按钮,如果是,点击它并重复获取元素直到按钮存在

最好的方法是通过(伪代码)来实现:

do
{
IList<IWebElement> Test= SeleniumDriver.WebDriver.FindElements(By.Xpath(""));

//HERE YOU CHECK IF BUTTON EXIST
if(isElementPresented(By.Id("")))
{
driver.FindElement(By.Id("")).Click;
}
else
{
//if button not exists
buttonExist = false;
}
}while(buttonExist);