如何使用C#和WebDriver保存坐标并在以后引用它们?

时间:2016-11-26 18:23:23

标签: c# selenium

这可能是一个特殊的问题,因为我确信你每天都看不到这样的事情。

我正在开发一个程序,它会自动完成一系列问题并为用户选择正确的答案。它的工作方式是首先通过按下名为“检查答案”的页面上的按钮来查找问题,通过其RGB颜色找到正确的答案,并且(在不久的将来)再次查看问题,这次根据我们之前收集的信息点击正确的答案。

这是问题所在;显然我不想只在一个问题上按下所有正确答案的坐标,并且每个问题都要这样做!我想要做的是保存这些坐标,我找到一个变量,以某种方式将它们与它们被发现的任何问题联系起来,并且当自动填写正确答案时,仅引用对应于该特定问题的坐标。

我基本上简单地说,我想将某些坐标与页面的某些“部分”相关联。

以下是该计划的一些代码:

IReadOnlyCollection<IWebElement> unfiltered = Driver.FindElements(By.CssSelector("*"));
Console.WriteLine(unfiltered.Count);
List<IWebElement> filtered = unfiltered.Where(f => f.GetCssValue("color") == "rgba(180, 137, 59, 1)").ToList();
Console.WriteLine(filtered.Count);
foreach (IWebElement element in filtered)
{
    Console.WriteLine(element.Location.X);
    Console.WriteLine(element.Location.Y);
    //Save coordinate(s) to variable pertaining to specific question?
}

上面的代码在我的程序中循环。一旦它获得与特定RGB颜色匹配的所有坐标,它将继续进行下一个问题,它将再次运行此代码。我希望能够将element.Location.Xelement.Location.Y保存到变量中,无论其出现什么问题。

1 个答案:

答案 0 :(得分:0)

这样的事情可能有用:)

 contributor ID .      organization
 1                     cand1
 2                     cand2
 3                     comm1
 3                     cand1
 4                     cand1
 5                     cand2
 5                     cand1
 5                     comm2