【发布时间】:2015-11-24 09:09:44
【问题描述】:
您好,我正在使用 watir 对 PHP 项目进行黄瓜测试。 不幸的是,页面总是由两个框架组成。
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=7">
<title>Rothschild - Olomouc</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/skripty.js"></script>
</head>
<frameset cols="183,*" frameborder="NO" border="0" framespacing="0" rows="*">
<frame name="leftFrame" scrolling="AUTO" noresize src="">
<frame name="mainFrame" src="getuser.php">
</frameset>
<noframes>
<body id=body bgcolor="#FFFFFF" text="#000000">
</body>
</noframes>
</html>
leftFrame 是菜单,
mainFrame是主页内容。
我用
if headless
@browser = Watir::Browser.new :phantomjs #headless
else
require 'watir-webdriver'
@browser = Watir::Browser.new :ie #non headless,IExplorer
end
main_content= @browser.frame(:name, "mainFrame").body
获取页面主要部分的内容。 它几乎每次都有效。
但现在我在双击TR 时遇到这种情况
<tr class="subTable dealer_1" onDblClick="window.location.href='detail_dealer.php?id=207'">
<td><a name="a207"></a></td>
<td> Lama Mirek</td>
<td> Ústí n. Orlicí</td>
<td></td>
</tr>
让我到页面detail_dealer.php?id=207(当然是mainFrame)
但是
@browser.frame(:name, "mainFrame").body
给我上一个表格(双击行)。
当我尝试用 PRY 调试它时
pry:> @browser.frame(:name, "mainFrame").body => content of desired detail page
看起来 watir 需要一些时间来“重新加载”正文内容。有什么方法可以做“refresh”或“wait until new content is loaded”吗?
watir-webdriver 和 phantomjs 两个驱动程序都会发生这种情况。
【问题讨论】: