当我点击页面上的标签时,我有一个加载的iframe.当我使用Firebug查看IE8上的iframe时,我看到的只有:
iframe id=tabContextFrame class=contextFrame contentEditable=inherit src=/xyz.dt?forward=show&layouttype=NoHeader&runid=1234 name=tabContextFrame url=/xyz.dt?forward=show&layouttype=NoHeader&runid=1234 scrolling=auto
就是这样.在iframe下面的层次结构是看不到的.我想点击iframe中的链接.为了找到iframe中的元素,我做了一个selenium.click("on the tab that loads the iframe")
然后selenium.getHtmlSource()
.从这个来源,我至少可以找到我感兴趣的链接.我做了一个,selenium.click("//span[text()='Link']")
但似乎没有做任何事情.有什么想法吗?
这是代码:
selenium.click("//span[text()='tab that loads iframe']");
Thread.sleep(5000);
selenium.selectFrame("tabContextFrame");
selenium.mouseOver("//span[text()='Link']");
selenium.mouseDown("//span[text()='Link']");
selenium.mouseUp("//span[text()='Link']");
Thread.sleep(5000);
selenium.selectFrame("null");
Run Code Online (Sandbox Code Playgroud) 在开发机器上安装VS2012 Premium后,单元测试失败,因此开发人员修复了该问题.当更改被推送到TeamCity时,单元测试失败.除了升级的解决方案文件与VS2012兼容之外,项目没有改变.它仍然以.net框架4.0为目标
我已经将问题隔离到unicode字符在调用时被转义的问题Uri.ToString
.以下代码复制了该行为.
Imports NUnit.Framework
<TestFixture()>
Public Class UriTest
<Test()>
Public Sub UriToStringUrlDecodes()
Dim uri = New Uri("http://www.example.org/test?helloworld=foo%B6bar")
Assert.AreEqual("http://www.example.org/test?helloworld=foo¶bar", uri.ToString())
End Sub
End Class
Run Code Online (Sandbox Code Playgroud)
在没有安装VS2012的机器上在VS2010中运行此功能成功,在安装了VS2012的机器上的VS2010中运行此功能失败.两者都使用最新版本的NCrunch和NuGet的NUnit.
来自失败断言的消息是
Expected string length 46 but was 48. Strings differ at index 42.
Expected: "http://www.example.org/test?helloworld=foo¶bar"
But was: "http://www.example.org/test?helloworld=foo%B6bar"
-----------------------------------------------------^
Run Code Online (Sandbox Code Playgroud)
.NET 4和.NET 4.5 上的MSDN文档显示ToString
不应对此字符进行编码,这意味着旧行为应该是正确的.
A String instance that contains the unescaped canonical representation of the Uri instance. All characters are unescaped except #, ?, and %.
Run Code Online (Sandbox Code Playgroud)
安装VS2012后,正在转义该unicode字符.
VS2012计算机上System.dll的文件版本为4.0.30319.17929
构建服务器上的System.dll的文件版本是4.0.30319.236
无视我们使用的原因 …
我怎样才能改变VARCHAR()
类型,DATETIME
使用ALTER
在MySQL?
我希望找到当天的所有记录.我有一个Date
DATE类型的字段.
如果我使用
WHERE `Date` = '2011-04-07'
Run Code Online (Sandbox Code Playgroud)
有用
但如果我使用:
WHERE `Date`='CURDATE()'
Run Code Online (Sandbox Code Playgroud)
要么
WHERE `Date`='NOW()'
Run Code Online (Sandbox Code Playgroud)
它不会返回任何结果(实际上有一些结果).
如何以正确的格式获取当前日期以在SQL查询中使用它?
我正在使用MySQL并且最初使用NOW()在数据库中输入日期.
我知道这看起来像是重复的,但我一直在研究类似的问题,但我仍然无法克服这个错误.
我无法理解为什么此SQL UPDATE查询返回"子查询返回的值超过1"错误.
UPDATE ph
SET ph.manufacturerPartNumber = t.DocID
FROM #tmp t
INNER JOIN PartHeader ph ON ph.partID = t.partID
Run Code Online (Sandbox Code Playgroud)
涉及的数据如下.
SELECT t.partID,t.DocID,ph.partID,ph.manufacturerPartNumber
FROM #tmp t
INNER JOIN PartHeader ph ON ph.partID = t.partID
Run Code Online (Sandbox Code Playgroud)
我不明白"超过1的价值"来自哪里.来自t的每个partID在ph中恰好具有1个partID.
我也尝试了以下相同的错误.
UPDATE PartHeader
SET PartHeader.manufacturerPartNumber = (SELECT t.DocID
FROM #tmp t
INNER JOIN PartHeader ph ON ph.partID = t.partID)
Run Code Online (Sandbox Code Playgroud)
我确定我错过了一些简单的东西,但我肯定会错过它.
谢谢你的帮助,丹