小编Chr*_*ver的帖子

Selenium和iframe

当我点击页面上的标签时,我有一个加载的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)

iframe selenium

20
推荐指数
1
解决办法
3万
查看次数

VS2012安装后System.Uri.ToString行为更改

在开发机器上安装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.

没有VS2012安装的机器

VS2012机器安装

来自失败断言的消息是

  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

无视我们使用的原因 …

.net c# vb.net

18
推荐指数
2
解决办法
1544
查看次数

16
推荐指数
1
解决办法
4万
查看次数

SQL查询从同一天获取记录

我希望找到当天的所有记录.我有一个DateDATE类型的字段.

如果我使用

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()在数据库中输入日期.

mysql sql date

3
推荐指数
1
解决办法
8034
查看次数

尝试在SQL中更新另一个表 - 返回"多个值"错误

我知道这看起来像是重复的,但我一直在研究类似的问题,但我仍然无法克服这个错误.

我无法理解为什么此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)

我确定我错过了一些简单的东西,但我肯定会错过它.

谢谢你的帮助,丹

sql sql-server-2008

3
推荐指数
1
解决办法
1169
查看次数