我想点击'+添加到朋友'。
browser.div(:class, "+ Add to Friends").click
和browser.div(:text, "+ Add to Friends").click
但是得到:Element is not currently visible and so may not be interacted with
<div data-friend="5004" onclick="return {'b-profileFriendsButton': {'friend': '5004' }}" class=" b-profileFriendsButton_mode_0 i-bem b-profileFriendsButton_js_inited">
<div class="b-profileFriendsButton__text b-profileFriendsButton__text_mode_2">Friends</div>
<div class="b-profileFriendsButton__hover b-profileFriendsButton__hover_mode_2 b-profileFriendsButton__deleteFromFriends">– Delete From Friends</div>
<div class="b-profileFriendsButton__text b-profileFriendsButton__text_mode_1">Friends</div>
<div class="b-profileFriendsButton__hover b-profileFriendsButton__hover_mode_1 b-profileFriendsButton__deleteFromFriends">– Delete From Friends</div>
<div class="b-profileFriendsButton__text b-profileFriendsButton__text_mode_0 b-profileFriendsButton__addToFriends">+ Add to Friends</div>
<div class="b-profileFriendsButton__hover b-profileFriendsButton__hover_mode_0 b-profileFriendsButton__addToFriends">+ Add to Friends</div>
</div>
答案 0 :(得分:0)
没有&lt; div&gt;标记的类属性为&#34; +添加到朋友&#34;,因此browser.div(:class, "+ Add to Friends").click
根本不应该工作。要在这种情况下使用:class
定位器,您可以执行以下操作:
browser.div(:class, "b-profileFriendsButton__text b-profileFriendsButton__text_mode_0 b-profileFriendsButton__addToFriends").click
还有2&lt; div&gt;标签包含&#34; +添加到朋友&#34;文本字符串,因此使用:text
和:index
的复合定位器应该有助于识别正确的位置。例如:
browser.div(:text => "+ Add to Friends", :index => 0).click
最后,尝试使用when_present
方法等待页面元素完全启用:
browser.div(:text => "+ Add to Friends", :index => 0).when_present.click
答案 1 :(得分:0)
以下是解决方案:
browser.div(:class => "b-profilePage__button").click
browser.div(:class => "b-profileFriendsButton__hover b-profileFriendsButton__hover_mode_0 b-profileFriendsButton__addToFriends").click
答案 2 :(得分:0)
请试试这个。 由于我们有两个+加为好友。使用正则表达式和索引属性单击。
browser.div(:class=>/addToFriends/, :index=>0).click
browser.div(:class=>/addToFriends/, :index=>1).click