我正在使用TestCafe创建自动测试,需要使用“确定”按钮关闭jQuery对话框。
由jQuery对话框生成的HTML(包含“确定”按钮):
<div tabindex="-1" role="dialog" class="ui-dialog ui-corner-all ui-widget ui-widget-content ui-front ui-dialog-buttons information-dialog" aria-describedby="alert-dialog" aria-labelledby="ui-id-2" style="height: auto; width: 300px; top: 325.046px; left: 645.5px;">
<div class="ui-dialog-titlebar ui-corner-all ui-widget-header ui-helper-clearfix">
<span id="ui-id-2" class="ui-dialog-title">Information</span>
<button type="button" class="ui-dialog-titlebar-close" style="display: none;"></button>
</div>
<div id="alert-dialog" class="ui-dialog-content ui-widget-content" style="width: auto; min-height: 30.062px; max-height: none; height: auto;">Record created. Visit ID is 10008444</div>
<div class="ui-dialog-buttonpane ui-widget-content ui-helper-clearfix">
<div class="ui-dialog-buttonset"><button type="button" class="ui-button ui-corner-all ui-widget">OK</button></div>
</div>
</div>
TestCafe脚本:
import { Selector } from 'testcafe';
fixture `My Test`
.page ('http://localhost/');
test('LOBO PS test', async t => {
await t
.click('#btnPRSave')
.click(Selector("button").withText("OK"));
});
上面的脚本将在“ .click(Selector ...)”行上“找到”按钮,但是光标将鼠标悬停在该按钮上而没有单击。我错过了一步吗?
更新:
我创建了一个fiddle来进行进一步的测试...并且在该处工作正常。的TestCafe脚本是:
import { Selector } from 'testcafe';
fixture `My Test`
.page ('https://jsfiddle.net/gcass/63fbm8ns/8/');
test('LOBO PS test', async t => {
await t
.switchToIframe('[name="result"]')
.click(Selector("button").withText("OK"))
});
jsfiddle与实际版本之间的差异是:
答案 0 :(得分:2)
原来是IE问题。我在Edge和Chrome中运行了相同的测试,然后单击jQuery Dialog按钮没问题。