【发布时间】:2013-08-13 23:05:03
【问题描述】:
在调试时,以下代码有效。但是当我让它进行测试时,它会显示一个错误。为了解决该错误,我添加了一个 java 脚本(来自另一个问题的示例)来更改不透明度,但这似乎并不能解决问题。
上传部分代码:
//File Details
FileName = "EMED.pdf";
FilePath = "\\\\iasfs1\\QA\\OpenSpace\\Automation\\FilesForUpload\\EMED.pdf";
//File Upload
WaitForElementPresent(By.Id("upload"));
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
js.ExecuteScript("document.getElementById('FileUpload').style.opacity = 1;");''
IWebElement fileUpload = driver.FindElement(By.Id("FileUpload"));
Console.Write("fileUpload.Displayed : " + fileUpload.Displayed.ToString());
Debug.WriteLine("fileUpload.Displayed : " + fileUpload.Displayed.ToString());
System.Diagnostics.Trace.WriteLine("fileUpload.Displayed : " + fileUpload.Displayed.ToString());
fileUpload.SendKeys(OSData.FilePath);'
显示错误 消息:OpenQA.Selenium.ElemenyNotVisibleException:元素当前不可见,因此可能无法与之交互。
对以上内容的任何帮助将不胜感激
提前谢谢你
【问题讨论】:
-
哪一行会报错?是
FindElement(By.Id("FileUpload"))吗? -
是的,这就是引发错误的那个
-
你为什么要处理两个不同的元素?在第 7 行,你等待一个元素出现,id 为
"upload",但是在第 11 行你尝试找到一个不同的元素,id 为"FileUpload"- 这是故意的吗?
标签: c# file-upload selenium selenium-webdriver opacity