使用Watin测试下拉列表 -- c# 领域 和 visual-studio-2010 领域 和 watin 领域 相关 的问题

Testing dropdown list using WatiN


简体版||繁體版
1
vote

问题

中文

我正在使用Watin来测试网站并自动化一个过程。我可以成功打开网站,但是在尝试从"选择列表中选择一个选项时出现问题:

  <select id="form:Dropdown" name="form:Dropdown" size="1" title="Select Option"> <option value="0">Select Code</option>     <option value="234890/NA/1">23FA4890</option>     <option value="237014/NA/1">23FA7014</option> </select>   

代码:

              Settings.AttachToBrowserTimeOut = 240;             Settings.WaitUntilExistsTimeOut = 240;             Settings.WaitForCompleteTimeOut = 240;                  browser = new IE();             browser.GoTo(url);             browser.WaitForComplete();             //Thread.Sleep(10000);             browser.SelectList(Find.ById("form:Dropdown")).WaitUntilExists(); //ERROR OCCURS HERE             SelectList dList = browser.SelectList(Find.ById("form:Dropdown"));             dList.Select("23FA4890");   

这看起来应该有效,但我一直在遇到错误"超时,同时等待240秒以显示元素。"

英文原文

I am using WatiN to test a website and automate a process. I can successfully open the website, however an issue arises when I am trying to select an option from a select list:

<select id="form:Dropdown" name="form:Dropdown" size="1" title="Select Option"> <option value="0">Select Code</option>     <option value="234890/NA/1">23FA4890</option>     <option value="237014/NA/1">23FA7014</option> </select> 

Code:

            Settings.AttachToBrowserTimeOut = 240;             Settings.WaitUntilExistsTimeOut = 240;             Settings.WaitForCompleteTimeOut = 240;                  browser = new IE();             browser.GoTo(url);             browser.WaitForComplete();             //Thread.Sleep(10000);             browser.SelectList(Find.ById("form:Dropdown")).WaitUntilExists(); //ERROR OCCURS HERE             SelectList dList = browser.SelectList(Find.ById("form:Dropdown"));             dList.Select("23FA4890"); 

This looks like it should work, but I keep getting an error "Timeout while waiting 240 seconds for element to show up."

        
         
         

回答列表

0
 
vote

我不相信您需要调用 WaitUntilExists ,因为 WaitForComplete 已经转到块,直到页面完全加载。我知道这没有完全回答你的问题,但我想向你展示一下我在生产中使用的一些代码的例子,从未出现过一个问题。

注意,我在iframe内抓取帧,并从下拉列表中选择"ID" 的值:

  Regex regex = new Regex(@"^.*/globalframeset.esp.*$"); using (var browser = IE.AttachTo<IE>(Find.ByUrl(regex), 12)) {     if (browser != null)     {         browser.AutoClose = false;          var iFrame = browser.Frame(Find.ById("GlobalWrapper"));          if (iFrame != null)         {             var frame = iFrame.Frame(Find.ByName("frGlobalNav"));              if (frame != null)             {                 frame.TextField(Find.ByName("findtext")).Value = person.MedicalRecordNumber;                  // This code is setting the DDL called "filtertype" to a value of "ID"                 frame.SelectList(Find.ByName("filtertype")).SelectByValue("ID");                  Regex buttonRegex = new Regex(@"^.*/go_text.gif.*$");                 frame.Image(Find.BySrc(buttonRegex)).ClickNoWait();             }         }          browser.BringToFront();     } }   
 

I don't believe you need to call WaitUntilExists since WaitForComplete is already going to block until the page is fully loaded. I know this doesn't answer your question completely, but I wanted to show you an example of some code that I've been using in production for over a year that has never been a problem.

Note, I'm grabbing a frame from within an iframe and selecting the value of "ID" from the drop down list:

Regex regex = new Regex(@"^.*\/globalframeset\.esp.*$"); using (var browser = IE.AttachTo<IE>(Find.ByUrl(regex), 12)) {     if (browser != null)     {         browser.AutoClose = false;          var iFrame = browser.Frame(Find.ById("GlobalWrapper"));          if (iFrame != null)         {             var frame = iFrame.Frame(Find.ByName("frGlobalNav"));              if (frame != null)             {                 frame.TextField(Find.ByName("findtext")).Value = person.MedicalRecordNumber;                  // This code is setting the DDL called "filtertype" to a value of "ID"                 frame.SelectList(Find.ByName("filtertype")).SelectByValue("ID");                  Regex buttonRegex = new Regex(@"^.*\/go_text\.gif.*$");                 frame.Image(Find.BySrc(buttonRegex)).ClickNoWait();             }         }          browser.BringToFront();     } } 
 
 

相关问题

0  使用Watin,如何在请求超时时刷新浏览器  ( Using watin how can i refresh the browser when the request times out ) 
我有这个代码: var ie = new IE(); ie.GoTo("http://www.google.com"); 我希望在结果是:"超时" 时自动刷新" 如果IE必须长时间加载但仍无法访问 http://www.google.com ,你能告诉我为我的浏览器设置一段时间吗??? ...

0  用树林改变桌面细胞的值  ( Change value of a table cell with watin ) 
使用Watin,我可以访问URL并更改以这种方式定义的HTML表单元格的值: <TABLE class=table1> <TBODY> <TR class=dis> <TD> rowSpan="1" colSpan="1" Famille <INPUT na...

15  watin - 使用confirmdialoghandler处理确认对话框  ( Watin handling confirm dialogs with confirmdialoghandler ) 
使用Watin,我正在尝试处理一个确认对话框并告诉Watin以按"确定" 。这是在互联网上进行的重新妥善记录 - 您使用 ConfirmDialogHandler 和 UseDialogOnce 方法..除了它不适合我。我收到以下错误: WatiN.Core.Exceptions.WatiNException: ...

2  如何检测Watin中的JavaScript弹出通知?  ( How to detect javascript pop up notifications in watin ) 
我有一个,似乎是什么,相当常见的情景我正在努力通过。 我有一个接受通过两个不同的文本字段输入的站点。如果输入畸形或无效,则我会收到JavaScript弹出通知。 我不会总是收到一个,但我应该在(就像我上次说过的)错误的数据,或者找不到搜索结果时。 如何在Watin中检测到这一点? 一个快速的谷歌搜索产生的结果,展示...

1  爬网网站并检测第三方饼干  ( Crawl site and detect 3rd party cookies ) 
我正在编写一个爬虫,以记录由一组网站部署的所有cookie。我可以使用Selenium挑选第一个聚会cookie,使用Selenium在页面访问中设置,但软件的限制意味着它不会拾取第三方cookie。是否有任何其他工具可供选择所有饼干? 谢谢。 ...

3  如何使用Watin从Div中获得所有<li>元素?  ( How do i get all the li elements from within a div using watin ) 
我今天从来没有用过湿。我需要收集一个"李" 元素,这些元素在'div'中 <div id="myDiv"> <ul> <li>a</li> <li>b</li> <li>c</li> </ul> </div> 我只想要div id ='mydiv'中的li元素.. 谢谢任何...

0  如何登录同一网站,不同的帐户,不同的代理,同时?  ( How can i login to the same website different accounts different proxies at t ) 
Hei Guys,我想制作一个测试程序要登录同一网站,具有不同的帐户和不同的代理,使所有帐户都在线同时从不同的代理同时在线。不需要其他东西,只是登录。 我试图使用watin,即使,我可以将IE设置为Nomerge,我仍然无法为每个会话使用不同的代理。 ...

0  单击“保存”或“保存”对话框的文件下载  ( Click on save or saveas dialog of file download ) 
我已经看过关于这个主题的几个问题,但没有一个解决方案工作,这就是为什么我再次发布它。 我正在使用Watin来自动测试我的网站的测试。使用IE 11.我必须下载并保存文件,但我无法单击下载窗口的"保存" 或"保存" 按钮。我尝试了Watin的FileDownloadHandler,但它没有工作。 我不仅仅限于别人的解决...

2  Watin SelectList()。SelectByValue()返回错误运行脚本失败  ( Watin selectlist selectbyvalue return error run script failed ) 
Hello我有一些我用Watin构建的项目我使用等方法 MainFrame.SelectList(Find.ById("mes1")).SelectByValue("12"); browser.TextField(Find.ById("line")).TypeText("Vova"); 和我收到错...

1  Jqgrid,MVC3,Nunit,Watin ...需要帮助自动化搜索  ( Jqgrid mvc3 nunit watin need help automating a search ) 
我们正在使用JQGrid作为主要网格显示器创建新系统 - 并且我们通过使用列标题中的字段来实现在网格中搜索。基本上,网格上升为空,用户可以通过字段单击列,然后键入信息并点击enter和网格搜索火灾。我们也将使用弹出表单进行搜索 - 但是对于大多数网格,我们将使用列标题类型字段进行搜索。 我正在尝试自动化测试并拥有一些...

0  如何处理URL中的ID值的弹出窗口,每次出现弹出窗口时都会更改  ( How to handle popup whose id value in the url changes each time the popup appear ) 
我正在使用Watin工具。我有一个情况,我需要检查复选框,然后单击弹出窗口中的OK按钮。我已经使用了AttachToie方法并使用URL属性将其附加到POPUP窗口。现在问题是URL包含一个id属性,并且每次弹出弹出突出的值都会更改..如何处理此问题或者除了附件之外还有其他方法吗?请提供一些建议。 谢谢。 ...

73  Watin错误无法加载程序集  ( Watin error could not load assembly ) 
我收到以下Watin错误: 未处理的异常:system.io.fileloadexception:无法加载文件 或asseall y'neterop.shdocvw,版本= 1.1.0.0,文化=中性, publicekeytoken = db7cfd3acb5 ad44e'或其依赖项之一。这 位于装配...

5  与湿度和NUnit的单元测试  ( Unit testing with watin and nunit ) 
似乎是有关Watin问题的共同主题与实际上有关工作,我也不例外。 我已下载了Watin的最新版本(2.0.20.1089),我试图创建Nunit / Watin相当于Hello,World: using WatiN.Core; using NUnit.Framework; namespace Foo.Brows...

1  Watin无法使用mspec - 未经授权的交认  ( Watin wont work with mspec unauthorizedaccessexception ) 
我正在尝试使用testdriven.net在VS2010中使用MSPEC的Watin。我的代码如下: <insertitemtemplate> <custom:myform runat=server /> <asp:button runat=server commandname="I...

0  是可以在iframe中获取domcontainer返回iframe?  ( Is is possible to get the domcontainer to return the iframe when an element is i ) 
我正在使用watin,我想运行一些自定义javascript。我不能使用浏览器.Eval,因为有时我会想要在iframe中执行代码。我尝试过使用DomContainer属性到此,但DomContainer返回完整的DOM而不是IFRame的DOM。 例子如下: Element.DomContainer.Ev...

0  Watin - 找不到链接元素(JavaScript)  ( Watin cannot find link element javascript ) 
我正在使用watin来自动化Web系统(内部)的过程。 我可以打开网站并访问一些链接,但无法找到其他链接。我认为这可能是因为它们深刻嵌套或因为HREF是JavaScript。这是它们所处的格式: <frame> <html> <frameset> <frame> ...

7  Watin和PDF的  ( Watin and pdfs ) 
任何人都可以提供和使用Watin下载PDF文件的示例?我尝试了saveasdialoghandler,但我无法弄清楚。也许可以使用一个记忆流? 谢谢, - jb ...

2  使用C#在IE 11中自动下载文件下载  ( Automate of file download in ie 11 using c sharp ) 
我正在尝试获取窗口处理程序并按下保存按钮。我在IE8&amp上发现了几个例子; 9.但该代码不适用于IE 11。 const int BM_CLICK = 0x00F5; [DllImport("user32.dll", SetLastError = true)] static e...

0  Watin IE9确认对话框不起作用[重复]  ( Watin ie9 confirm dialog is not working ) 
这个问题已经在这里有答案: 关闭 8年前。 可能的重复: vatin&amp; IE9 - 不能单击"确定" 按钮 var dialogHandler = new WatiN.Cor...

2  Watin文件上传  ( Watin file upload ) 
我碰了一个障碍。我正在尝试使用Watin来上传文件。我可以加载上传框,但它很快就会消失。目前我的代码的最后一行是: ie.FileUpload(Find.ById("profile_file")).Click(); 它加载对话框以选择图片但消失。是否可以自动设置框的路径,称为"c:/desktop/imag...

2  Watin:启动IE CreateInnewProcess == True Time Out IE and并未开始测试  ( Watin launching ie with createinnewprocess true times out ie and doesnt start ) 
我正在尝试一次开发和运行2个测试项目(使用相同的Web应用程序)。当我使用2个nunit-gui实例运行2个不同的测试时,问题发生了问题,因为IE共享会话和1个测试会影响另一个(从应用程序中注销用户)。我发现Watin可以创建IE的单独进程,构造函数: IE 构造函数(String,Boolean) 参数:...

1  watin-无法使用vb.net从选择列表下拉列表中选择一个项目  ( Watin cant select an item from a selectlist dropdown using vb net ) 
net / watin应用程序,我正在尝试从客户网站上的ComboBox中选择和项目。我可以使用Watin删除列表并从列表中选择(Highlite)项目,但所选项目不会填充上面的文本框。似乎是watin的.select()没有触发一个事件到火。 我可以通过在ComboBox中的项目的第一个字母中写入此目的,并使用超...

0  如何在Firefox中附加一个子窗口与父窗口的C#代码中的父窗口使用Watin  ( How to attach a child window in firefox with parent window in c sharp code using ) 
我想将一个子窗口与Firefox浏览器的父窗户一起。 AttachToie将IE子窗口附加到IE父窗口。 watin.core for firefox是否有任何方法?任何人都知道? ...

16  如何在没有NativeMethods的情况下给出窗口的位置/位置?  ( How do i find the position location of a window given a hwnd without nativemet ) 
我目前正在使用Watin,并发现它是一个伟大的Web浏览自动化工具。但是,正如最后一个版本所示,它的屏幕捕获功能似乎缺乏。我提出了一个可行的解决方案,用于从屏幕捕获屏幕截图(独立生成类似于这个stackoverflow问题)除了一些代码by charles petzold 。不幸的是,有一个缺少的组件:在哪里实际窗口...

0  Watin与Hresult保持崩溃:0x80070005(E_Accessdened)  ( Watin keeps crashing with hresult 0x80070005 e accessdenied ) 
我使用Windows XP 继续在IE6上获取此项 WatiN.Core.Exceptions.RunScriptException : RunScript failed ----> System.UnauthorizedAccessException : Access is denied. (Excepti...

相关问题

0  使用Watin,如何在请求超时时刷新浏览器 
0  用树林改变桌面细胞的值 
15  watin - 使用confirmdialoghandler处理确认对话框 
2  如何检测Watin中的JavaScript弹出通知? 
1  爬网网站并检测第三方饼干 
3  如何使用Watin从Div中获得所有<li>元素? 
0  如何登录同一网站,不同的帐户,不同的代理,同时? 
0  单击“保存”或“保存”对话框的文件下载 
2  Watin SelectList()。SelectByValue()返回错误运行脚本失败 
1  Jqgrid,MVC3,Nunit,Watin ...需要帮助自动化搜索 
0  如何处理URL中的ID值的弹出窗口,每次出现弹出窗口时都会更改 
73  Watin错误无法加载程序集 
5  与湿度和NUnit的单元测试 
1  Watin无法使用mspec - 未经授权的交认 
0  是可以在iframe中获取domcontainer返回iframe? 
0  Watin - 找不到链接元素(JavaScript) 
7  Watin和PDF的 
2  使用C#在IE 11中自动下载文件下载 
0  Watin IE9确认对话框不起作用[重复] 
2  Watin文件上传 
2  Watin:启动IE CreateInnewProcess == True Time Out IE and并未开始测试 
1  watin-无法使用vb.net从选择列表下拉列表中选择一个项目 
0  如何在Firefox中附加一个子窗口与父窗口的C#代码中的父窗口使用Watin 
16  如何在没有NativeMethods的情况下给出窗口的位置/位置? 
0  Watin与Hresult保持崩溃:0x80070005(E_Accessdened) 



© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有