Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium C#,找不到要单击链接的表单元格_C#_Selenium_Visual Studio 2012 - Fatal编程技术网

Selenium C#,找不到要单击链接的表单元格

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("//*

我试图单击表中的一个可单击单元格(单元格有链接),但我甚至无法通过测试找到单元格本身。我可以使iFrame处于活动状态,但找不到单元格,即使用导航到该帧

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")));

你说找不到是什么意思??有什么例外吗?你说找不到是什么意思??有什么例外吗??