希望有人可以帮我指出正确的方向。我正在登录防火墙并试图点击一个使用Python和Firefox webdriver的框架中的javascript按钮。
首先,我正在与我合作: http://i.imgur.com/5X8jEkb.png
(抱歉无法嵌入图片,因为这是我的第一篇文章)
切换到框架后,我可以通过xpath找到没有错误的元素,告诉我我在正确的位置。
driver.switch_to_frame("outlookFrame")
element = driver.find_element_by_xpath('//*[@id="nav_head2_textbox"]/a')
没有错误
点击:
driver.find_element_by_xpath('//*[@id="nav_head2_textbox"]/a').click()
我得到例外:
ElementNotVisibleException: Message: Element is not currently visible and so may not be interacted with
是什么给出的?如果我切换回父框架,那么我甚至找不到xpath。
要添加一些东西。我在网络浏览器中可以看到javascript按钮。
使用DOM检查器显示JS按钮的这个XML:
<div xmlns="http://www.w3.org/1999/xhtml" class="nav_item" id="nav_head2_on" style="display: block;"><div id="nav_head2_textbox"><a class="nav_sub_sett" target="tabFrame" onclick="javascript:hiLight(this);" href="systemSettingsView.html">Settings</a></div>
修改 好吧,我设法通过使用从Firebug中提取的完整XPATH来使其工作。仍然不确定为什么较短的路径不起作用:
driver.find_element_by_xpath('/html/body/div[2]/div/div[4]/div[7]/div/a').click()