我有一个Facebook应用程序,我想用Watir测试。 问题是我无法访问其div。 它位于iframe内。 我可以找到它,它甚至说它是可见的。 问题是我无法点击它(它说它在尝试时是不可见的)
你能帮忙吗? 我使用XXX而不是用户名和不同的Facebook应用程序发布了我的代码。非常感谢。
require "watir-webdriver"
browser = Watir::Browser.new
browser.goto "http://www.facebook.com"
sleep(2)
if browser.text_field(:id => 'pass').exists?
browser.text_field(:id => 'email').set 'XXXXXXXXX'
browser.text_field(:id => 'pass').set 'ZZZZZZZ'
browser.button(:value => 'Log In').click
end
sleep(2)
browser.text_field(:id => 'q').set 'World Of Fun'
browser.send_keys :enter
sleep (2)
browser.goto "https://www.facebook.com/dialog/oauth?client_id=277448022299830&redirect_uri=http%3A//apps.facebook.com/worldoffun/%3Fref%3Dts&canvas=1&fbconnect=0&scope=email,publish_actions"
sleep (2)
if browser.button(:name => 'grant_clicked').exists?
browser.button(:name => 'grant_clicked').click
sleep(3)
end
sleep(1)
答案 0 :(得分:1)
那是因为您尝试识别的元素不在该页面上,请尝试这样做:
if browser.label(:id => 'grant_clicked').exists?
browser.label(:id => 'grant_clicked').click
sleep(3)
我还注意到该应用程序处于flash状态,因此Watir将无法处理其中的flash元素,我建议将AutoIt或Project Sikuli与Watir-Webdriver一起使用。