[英]Selenium Webdriver can't find table elements
我是硒的新手,我不知道如何从 HTML 页面中找到一些元素。 我在这里转载了该页面:
http://www.ladiana.it/test/test.htm
我需要点击这个按钮:选择并在表格出现后,读取和写入它们的值:
我正在使用 c# 并尝试了所有可能的方法,我还尝试列出所有带有 Id 的元素:“targetDemandReductionMW”
IList IWebElement> all = driver2.FindElements(By.Id("targetDemandReductionMW"));
我得到一个包含 52 个空元素的列表。
这里有一些其他代码,它不会产生任何错误但没有工作:
IWebElement element_xpath = driver2.FindElement(By.ClassName("tab_buttonSel"));
element_xpath.Click();
IWebElement table = driver2.FindElement(By.Id("drr1OfferAM"));
var rows = table.FindElements(By.TagName("tr"));
int conteggio = 0;
foreach (var row in rows)
{
var rowTds = row.FindElements(By.TagName("td"));
foreach (var td in rowTds)
{
IWebElement a = td.FindElement(By.XPath("//*[@id='targetDemandReductionMW']"));
Console.WriteLine(conteggio++.ToString()+" "+a.GetAttribute("href")+" "+ a.Text);
}
}
有什么帮助吗? 谢谢
对于需要点击的按钮,可以使用:
//div[@id='tabContainer']/div[2]/following::tr/td[text()='DRR1 Offer']
对于表记录的 xpath,您可以使用:
//table[@id='drr1OfferPMHead']//td[@id='targetDemandReductionMW']
这将返回您要查找的 13 行。 然后,您可以对此执行 FindElements 并获取列表。
List<String> search = new List<string>();
IReadOnlyList<IWebElement> cells = driver.FindElements(By.Xpath("//table[@id='drr1OfferPMHead']//td[@id='targetDemandReductionMW']"));
foreach (IWebElement cell in cells)
{
search.Add(cell.Text);
}
单元格(在 html 中)有 cellclick 事件,但如果我尝试:
foreach (IWebElement cell in cells)
{
search.Add(cell.Text);
if (cell.Text=="300.0")
{
cell.click();
}
}
它出现了这个错误:“OpenQA.Selenium.ElementNotInteractableException:'元素不可交互”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.