C# Selenium在第页上查找数组内容
我正在使用VisualStudio和Selenium构建一个应用程序,该应用程序将转到网页并查找数组的内容是否在网页上。我在搜索页面中的数组内容时遇到问题。。现在它什么也找不到,所以它在不应该的时候点击进入下一页 数组来自我正在加载的CSV文件,它需要在页面中搜索CSV文件中任何记录的匹配项,然后停止 以下是我到目前为止的情况:C# Selenium在第页上查找数组内容,c#,arrays,selenium,C#,Arrays,Selenium,我正在使用VisualStudio和Selenium构建一个应用程序,该应用程序将转到网页并查找数组的内容是否在网页上。我在搜索页面中的数组内容时遇到问题。。现在它什么也找不到,所以它在不应该的时候点击进入下一页 数组来自我正在加载的CSV文件,它需要在页面中搜索CSV文件中任何记录的匹配项,然后停止 以下是我到目前为止的情况: OpenFileDialog ofd = new OpenFileDialog(); private double timeOut;
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文件中的第一条记录,而不是任何记录。示例:该文件具有以下记录:苹果、香蕉、橙色。它只寻找苹果,跳过香蕉和橘子