【发布时间】:2017-12-13 14:17:29
【问题描述】:
我试图了解为什么在我尝试显示从网站获取的项目时它会出错。 我也在使用 google chrome 作为浏览器。
chromeDriver.Navigate().GoToUrl("somewebsites");
chromeDriver.FindElement(By.Id("something.link.text")).Click();
chromeDriver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(5));
还有我的代码的其他部分
var item = chromeDriver.FindElementsByXPath("//*[starts-with(@id,\"g_1_\")]/td[3]/span");
foreach (var value in item)
{
Console.WriteLine(value.Text);
}
每当我使用 "chromeDriver.FindElement(By.Id("something.link.text")).Click();" 时,它都会出错。我无法显示我提取的数据。
在错误消息中,它显示“OpenQA.Selenium.StaleElementReferenceException: 'stale element reference: element is not attach to the page document”。我检查了其他帖子,但我没有弄清楚。我该如何解决?
正如我所读到的,selenium 的响应速度比网站打开时间快得多,因此会出现错误。此外,它很少给出硒无法定位的元素。有什么建议吗?
编辑:如果我从显示功能中删除“.text”,它会显示“OpenQA.Selenium.Remote.RemoteWebElement”。字符串有问题吗?
EDIT2:我可以像这样保存从网站获取的数据:
[i]="System.Collections.ObjectModel.ReadOnlyCollection`1[OpenQA.Selenium.IWebElement]" 为此,我写了这样的东西:
string[] test= new string[100];
for (int i = 0; i < 100; i++)
{
kaan[i] = driver.FindElements(By.XPath("//*[starts-with(@id,\"g_1_\")]/td[3]/span")).ToString();
}
如何转换成文字
【问题讨论】:
-
请添加html。
标签: c# html selenium selenium-webdriver selenium-chromedriver