无法使用Capybara 通过Appium点击移动视图(iOS)上的按钮/链接
我的设置:
我正在移动视图(iOS)上测试一个网站。在桌面上,它工作得很好(使用Capybara),但当我通过Appium通过Capybara在移动视图(iOS)上测试时,测试卡在了一个按钮上,这个按钮是可见的,但Capybara无法点击它。
HTML:
<div id="HeaderContent" class="accordion-content" style="display: block;">
<div id="CompMessageContainer" class="content row hidden">
<div role="alert" aria-atomic="true" aria-relevant="all" aria-live="assertive">
<div class="uiMessaging alert-box radius success" id="ui-alert-message">
<div>
<div>
<div class="positiveCompMessageIcon"></div>
</div>
<div>
<div id="CartAlertMessage">
</div>
<ul id="cartAlertMessageDetails" class=" hidden">
</ul>
</div>
</div>
</div>
</div>
</div>
<div id="milAndFirstRespContent">
<div id="cartBottomAlternateDiscountOptions">
<div id="compText">
Random Text.
</div>
<div class="desktopComp-btn-container">
<a id="imgMil" href="#" class="login-trigger left utrack" data-scope="mil" data-track-event="CompTrigger">
<div class="desktopCompMilBtn"></div>
</a>
<a id="imgResp" href="#" class="login-trigger left utrack" data-scope="responder" data-track-event="CompTrigger">
<div class="desktopCompRespBtn"></div>
</a>
<div class="desktopCompLogo"></div>
<div id="desktopCompVerified" class="hidden">
<div class="desktopCompVerified"></div>
<div id="desktopCompStatus"> Status Verified</div>
</div>
</div>
<div>
</div>
</div>
</div>
</div>
我尝试单击<div class="desktopCompMilBtn"></div>
按钮或a id="imgResp"
元素。
pry(#<Object>)> find("div.desktopCompMilBtn").visible?
=> true
pry(#<Object>)> find("div.desktopComp-btn-container").visible?
=> true
pry(#<Object>)> find("div.desktopComp-btn-container").find("div.desktopCompMilBtn").visible?
=> true
pry(#<Object>)> find("div.desktopComp-btn-container").find("div.desktopCompMilBtn").click
=> nil
pry(#<Object>)> find("div.desktopComp-btn-container").find("a#imgMil").visible?
=> true
pry(#<Object>)> find("div.desktopComp-btn-container").find("a#imgMil").click
=> nil
pry(#<Object>)> find("div.desktopComp-btn-container").find("a#imgMil").find("div.desktopCompMilBtn").click
=> nil
不幸的是,到目前为止,在点击按钮方面还没有任何效果。顺便说一句,这个按钮应该打开一个新窗口,不确定这是否重要。
如果没有实际测试失败和与点击绑定的JS的详细信息,就不可能100%确定您遇到了什么问题。#click返回nil并不意味着链接/div没有被点击。在这种情况下,它更有可能被点击了,但本应处理点击的JS并没有达到你的预期,因为iOS中的Safari会阻止弹出窗口由真正的用户点击之外的任何东西启动-请参阅Safari 中的javascript window.open
您可以通过让点击处理程序做一些不同的事情(提醒、更改元素的颜色等)并确认它实际上被称为