无法使用watir

时间:2016-07-09 20:01:40

标签: ruby watir watir-webdriver qa

当我尝试点击复选框时出现错误

browser.checkbox(:id, 'AgreeToProceedWithPersonalData').click

Element is not clickable at point (314.5, 448). Other element would receive the click: <label for="AgreeToProceedWithPersonalData"></label>

当我点击下面的元素时,我会打开协议页面。

browser.label(:for, 'AgreeToProceedWithPersonalData').click

如何设置复选框并且不打开协议?

<div class="checkbox">
                    <input data-val="true" data-val-mustbetrue="Ваше согласие необходимо для продолжения" data-val-required="The I agree to proceed personal data field is required." id="AgreeToProceedWithPersonalData" name="AgreeToProceedWithPersonalData" type="checkbox" value="true" autocomplete="off" checked="checked">
                    <label for="AgreeToProceedWithPersonalData">I agree to proceed personal data. 
                        <a href="/client/Questionnaire/Agreement?type=Private&amp;targetElement=AgreeToProceedWithPersonalData" class="moddialog">Read the agreement</a>
                    </label>
                    <span class="field-validation-valid" data-valmsg-for="AgreeToProceedWithPersonalData" data-valmsg-replace="true"></span>
                </div>

2 个答案:

答案 0 :(得分:0)

开发人员经常喜欢通过在标准html元素之上分层来制作漂亮的东西,而且驱动程序并不喜欢这样。

请不要过度使用它,因为对大多数事情来说这不是好习惯,但在这种情况下,我发现自己需要这样做:

if ( mBitmap != null ) mBitmap.recycle();  
     mBitmap  = null; 

答案 1 :(得分:0)

如果fire_event不起作用,很可能在页面上有一些非常自定义的javascript。因此很难建议,如果您提供页面的网址进行试验,那就太好了。

然而,你可以尝试这样的建议,没有保证(只是猜测)

browser.execute_script("window.stop")# That will stop all the scripts on the page. May be usefull may be not
browser.execute_script("document.getElementById('AgreeToProceedWithPersonalData').click();")# That will perform click using pure javascript