如何在每个循环使用时滚动?

时间:2017-01-18 13:29:59

标签: c# selenium-webdriver

我的代码......

当index大于10时,页面有水平滚动条..

在没有滚动的情况下,当尝试查找元素时,它会抛出没有找到这样的元素的异常被抛出。

是否有可能,@ final catch如果找不到元素,则滚动然后再重新开始..

但是我怀疑如果那个元素真的不存在它可能是一个无限循环..请提出一些想法如何解决这个问题?

public string[] GetHeaders(NgWebDriver driver, Table table, string[] IndexMapping) 
        {
            string[] columnHeaders = new string[IndexMapping.Length];
            int index = 0;
            try
            {
                foreach (var column in IndexMapping)
                {

                    try
                    {               
                        columnHeaders[index] = driver.FindElement(By.CssSelector("#columntable" + table.TableID + " > div:nth-child(" + column + ") > div > div:nth-child(1) > span")).Text;   
                    }
                    catch
                    {
                        try
                        {                                                   
                            columnHeaders[index] = driver.FindElement(By.CssSelector("#columntable" + table.TableID + " > div:nth-child(" + column + ") > div > div:nth-child(1)")).Text;   

                        }
                        catch 
                        {
                            columnHeaders[index] = driver.FindElement(By.XPath("//div[@id='columntablegridRecords']/div[" + column + "]/div/div")).Text;
                        }
                    }                    
                    index++;
                }
            }
            catch (NoSuchElementException nsee) { throw new NoSuchElementException("Element not found", nse); }
            return columnHeaders;
        }

0 个答案:

没有答案