该计划应该做什么?点击网站上的每个按钮。
By bybut = By.XPath("//span[@class='Button']");
var element = driver.FindElement(bybut);
IJavaScriptExecutor js = driver as IJavaScriptExecutor;
for (int i = 0; i < 99; i++)
{
// Scroll element into view (orange rectangle on my picture)
js.ExecuteScript("arguments[0].scrollIntoView(true);", element);
// Time for scrolling
System.Threading.Thread.Sleep(2000);
// Click on Button
driver.FindElement(By.XPath("//span[@class='Button']")).Click();
}
在互联网网站上,如果您点击该按钮,它将被删除。
我的问题: 如果For-Loop重复,则会出现错误,因为下一个按钮已经在我的视图框中。如果按钮已经进入视图,我该如何检查?
您还有其他解决方案吗?提前谢谢!
答案 0 :(得分:1)
你可以尝试下面的代码:_
IJavaScriptExecutor js = driver as IJavaScriptExecutor;
List<WebElement> displayedOptions = driver.FindElements(//span[@class='Button']);
for (WebElement option : displayedOptions)
{
try{
js.ExecuteScript("arguments[0].scrollIntoView(true);", option );
System.Threading.Thread.Sleep(2000);
// Click on Button
driver.FindElement(By.XPath("//span[@class='Button']")).Click();
}catch(WebException E){
}