Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Selenium在第页上查找数组内容_C#_Arrays_Selenium - Fatal编程技术网

C# Selenium在第页上查找数组内容

C# Selenium在第页上查找数组内容,c#,arrays,selenium,C#,Arrays,Selenium,我正在使用VisualStudio和Selenium构建一个应用程序,该应用程序将转到网页并查找数组的内容是否在网页上。我在搜索页面中的数组内容时遇到问题。。现在它什么也找不到,所以它在不应该的时候点击进入下一页 数组来自我正在加载的CSV文件,它需要在页面中搜索CSV文件中任何记录的匹配项,然后停止 以下是我到目前为止的情况: OpenFileDialog ofd = new OpenFileDialog(); private double timeOut;

我正在使用VisualStudio和Selenium构建一个应用程序,该应用程序将转到网页并查找数组的内容是否在网页上。我在搜索页面中的数组内容时遇到问题。。现在它什么也找不到,所以它在不应该的时候点击进入下一页

数组来自我正在加载的CSV文件,它需要在页面中搜索CSV文件中任何记录的匹配项,然后停止

以下是我到目前为止的情况:

        OpenFileDialog ofd = new OpenFileDialog();
    private double timeOut;

    private void bttnImportBrowse_Click(object sender, EventArgs e)
    {
        ofd.Filter = "CSV|*.csv";
        var fileInputs = new List<string>();
        if (ofd.ShowDialog() == DialogResult.OK)
        {
            String chosenFile = ofd.FileName;
            String safeFileName = ofd.SafeFileName;

            try
            {
                // Create an instance of StreamReader to read from a file.
                // The using statement also closes the StreamReader.
                using (StreamReader sr = new StreamReader(chosenFile))
                {
                    string line;
                    // Read and display lines from the file until the end of
                    // the file is reached.
                    while ((line = sr.ReadLine()) != null)
                    {
                        //Console.WriteLine(line);
                        fileInputs.Add(line);
                        //Console.Write(string.Join(" ", fileInputs));

                        var driver = new ChromeDriver(@"C:\Users\andre_000\Documents\Visual Studio 2015\Projects\MyProject\");


                            driver.Navigate().GoToUrl("MySite");


                        var WebDriverWait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeOut)).Until(ExpectedConditions.ElementExists((By.XPath("/html/body/a[2]"))));
                        while (1==1) {
                            try
                            {
                                var result = driver.FindElement(By.LinkText(fileInputs.ToString())); 
                                break;
                            }
                            catch (NoSuchElementException n)
                            {
                                var nextBttn = driver.FindElementByXPath("/html/body/a[2]");
                                nextBttn.Click();
                            }
                        }

                    }
                }

            }
            catch (Exception entry)
            {
                // Let the user know what went wrong.
                Console.WriteLine("The file could not be read:");
                Console.WriteLine(entry.Message);
            }
        }
    }
OpenFileDialog ofd=newopenfiledialog();
专用双超时;
私有无效BTTNIMPORTTBROWSE_单击(对象发送者,事件参数e)
{
ofd.Filter=“CSV |*.CSV”;
var fileInputs=新列表();
if(ofd.ShowDialog()==DialogResult.OK)
{
字符串chosenFile=ofd.FileName;
字符串safeFileName=ofd.safeFileName;
尝试
{
//创建StreamReader的实例以从文件中读取。
//using语句还将关闭StreamReader。
使用(StreamReader sr=新StreamReader(chosenFile))
{
弦线;
//读取并显示文件中的行,直到
//已到达该文件。
而((line=sr.ReadLine())!=null)
{
//控制台写入线(行);
fileInputs.Add(行);
//Write(string.Join(“,fileInputs));
var driver=new ChromeDriver(@“C:\Users\andre\u 000\Documents\visualstudio 2015\Projects\MyProject\”;
driver.Navigate().gotour(“MySite”);
var WebDriverWait=new WebDriverWait(driver,TimeSpan.FromSeconds(timeOut))。直到(ExpectedConditions.ElementExists((By.XPath(“/html/body/a[2]”)));
而(1==1){
尝试
{
var result=driver.FindElement(By.LinkText(fileInputs.ToString());
打破
}
捕获(无接触元素异常n)
{
var nextbtn=driver.findelementbypath(“/html/body/a[2]”);
nextBttn.Click();
}
}
}
}
}
捕获(异常条目)
{
//让用户知道出了什么问题。
WriteLine(“无法读取文件:”);
Console.WriteLine(entry.Message);
}
}
}

很抱歉,我本想留下评论,但现在还不允许。你有CSV文件吗

我相信你正在试图找到错误的链接文本

当前正在列表上调用ToString()

 var result = driver.FindElement(By.LinkText(fileInputs.ToString()));
应该是

 var result = driver.FindElement(By.LinkText(line));

对不起,我本来会留下评论的,但现在还不允许。你有CSV文件吗

我相信你正在试图找到错误的链接文本

当前正在列表上调用ToString()

 var result = driver.FindElement(By.LinkText(fileInputs.ToString()));
应该是

 var result = driver.FindElement(By.LinkText(line));

移动您的var驱动程序=新的ChromeDriver(@“C:\Users\andre\u 000\Documents\Visual Studio 2015\Projects\MyProject\”;你可能应该把它放在一个后台线程中,网上有很多例子。如果您在Winforms中运行,可以通过在读取循环中调用Application.DoEvents()来停止错误。(我认为这是一种糟糕的形式)提出的按“行”搜索的方法遇到了一个问题。它只搜索CSV文件中的第一条记录,而不是任何记录。示例:该文件具有以下记录:苹果、香蕉、橙色。它只寻找苹果,跳过香蕉和橘子移动你的var驱动程序=新的ChromeDriver(@“C:\Users\andre\u 000\Documents\Visual Studio 2015\Projects\MyProject\”);你可能应该把它放在一个后台线程中,网上有很多例子。如果您在Winforms中运行,可以通过在读取循环中调用Application.DoEvents()来停止错误。(我认为这是一种糟糕的形式)提出的按“行”搜索的方法遇到了一个问题。它只搜索CSV文件中的第一条记录,而不是任何记录。示例:该文件具有以下记录:苹果、香蕉、橙色。它只寻找苹果,跳过香蕉和橘子