Selenium C#,找不到要单击链接的表单元格
我试图单击表中的一个可单击单元格(单元格有链接),但我甚至无法通过测试找到单元格本身。我可以使iFrame处于活动状态,但找不到单元格,即使用导航到该帧Selenium C#,找不到要单击链接的表单元格,c#,selenium,visual-studio-2012,C#,Selenium,Visual Studio 2012,我试图单击表中的一个可单击单元格(单元格有链接),但我甚至无法通过测试找到单元格本身。我可以使iFrame处于活动状态,但找不到单元格,即使用导航到该帧 IWebElement objecElement = driver.FindElement(By.XPath("//*[@id='AreaID2_iframe']")); driver.SwitchTo().Frame(objecElement); 但是下面的代码找不到表单元格 driver.FindElement(By.XPath("//*
IWebElement objecElement = driver.FindElement(By.XPath("//*[@id='AreaID2_iframe']"));
driver.SwitchTo().Frame(objecElement);
但是下面的代码找不到表单元格
driver.FindElement(By.XPath("//*[@id='lwDataGrid_r_0_c_5']"));
以下链接中的表格格式如下所示:-
非常感谢您的帮助
关于请尝试使用适当的选择器,例如
IWebElement objecElement = driver.FindElement(By.Id("AreaID2_iframe"));
driver.SwitchTo().Frame(objecElement);
var tableRow = driver.FindElements(By.Id("lwDataGrid_r_0_c_5"));
在
tableRow
后面放一个断点,看看它是否找到元素?尝试使用合适的选择器,例如
IWebElement objecElement = driver.FindElement(By.Id("AreaID2_iframe"));
driver.SwitchTo().Frame(objecElement);
var tableRow = driver.FindElements(By.Id("lwDataGrid_r_0_c_5"));
在
tableRow
之后放置一个断点,看看它是否找到了元素?我认为这是时间问题,您应该尝试使用WebDriverWait
等待,直到加载了表并且所需元素可见,如下所示:-
IWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
wait.Until(ExpectedConditions.FrameToBeAvailableAndSwitchToIt("AreaID2_iframe"));
IWebElement row = wait.Until(ExpectedConditions.ElementIsVisible(By.Id("lwDataGrid_r_0_c_5")));
我认为这是时间问题,您应该尝试使用
WebDriverWait
等待,直到加载了表并且desire元素可见,如下所示:-
IWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
wait.Until(ExpectedConditions.FrameToBeAvailableAndSwitchToIt("AreaID2_iframe"));
IWebElement row = wait.Until(ExpectedConditions.ElementIsVisible(By.Id("lwDataGrid_r_0_c_5")));
你说找不到是什么意思??有什么例外吗?你说找不到是什么意思??有什么例外吗??