Selenium 找不到 table
Selenium doesn't find a table
我正在尝试阅读此网站https://www.cmegroup.com/clearing/operations-and-deliveries/accepted-trade-types/block-data.html
在该网站中,向下滚动有 table:
我正在尝试用 Selenium 阅读它:
// Load website
IWebDriver driver = new ChromeDriver();
driver.Navigate().GoToUrl("https://www.cmegroup.com/clearing/operations-and-deliveries/accepted-trade-types/block-data.html");
Thread.Sleep(1000);
// Get table
IWebElement table = driver.FindElement(By.XPath("//*[@id='main-content']/div/div[4]/div/div[2]"));
//driver.FindElement(By.CssSelector(".block-trades-table-wrapper'"));
// Loop table elements
IList<IWebElement> tableRow = table.FindElements(By.TagName("tr"));
IList<IWebElement> rowTD;
foreach (IWebElement row in tableRow)
{
rowTD = row.FindElements(By.TagName("td"));
}
Console.WriteLine("Test!");
经过测试,我发现如果我输入错误的 Xpath,我会得到一个错误:
这里我没有收到任何错误,所以 Xpath 应该是正确的。但是我没有任何可读的东西。
我如何阅读 table?
@Adrian Hernando Solanas
对于前几次Iteration,您不会找到任何记录,因为如果您仔细看,前2 tr
没有任何 td
,因为它们在thead
但是当你继续迭代时,当代码迭代进入 tbody
时,你将开始获取 td
的文本
此外,将您的代码添加到 try - catch
块中,以便在任何迭代中不存在特定元素时,您可以根据需要处理这种情况。
我正在尝试阅读此网站https://www.cmegroup.com/clearing/operations-and-deliveries/accepted-trade-types/block-data.html
在该网站中,向下滚动有 table:
我正在尝试用 Selenium 阅读它:
// Load website
IWebDriver driver = new ChromeDriver();
driver.Navigate().GoToUrl("https://www.cmegroup.com/clearing/operations-and-deliveries/accepted-trade-types/block-data.html");
Thread.Sleep(1000);
// Get table
IWebElement table = driver.FindElement(By.XPath("//*[@id='main-content']/div/div[4]/div/div[2]"));
//driver.FindElement(By.CssSelector(".block-trades-table-wrapper'"));
// Loop table elements
IList<IWebElement> tableRow = table.FindElements(By.TagName("tr"));
IList<IWebElement> rowTD;
foreach (IWebElement row in tableRow)
{
rowTD = row.FindElements(By.TagName("td"));
}
Console.WriteLine("Test!");
经过测试,我发现如果我输入错误的 Xpath,我会得到一个错误:
这里我没有收到任何错误,所以 Xpath 应该是正确的。但是我没有任何可读的东西。
我如何阅读 table?
@Adrian Hernando Solanas
对于前几次Iteration,您不会找到任何记录,因为如果您仔细看,前2 tr
没有任何 td
,因为它们在thead
但是当你继续迭代时,当代码迭代进入 tbody
时,你将开始获取 td
此外,将您的代码添加到 try - catch
块中,以便在任何迭代中不存在特定元素时,您可以根据需要处理这种情况。