Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Python使用Selenium webdriver单击javascript元素时出现问题_Python_Selenium_Webdriver - Fatal编程技术网

通过Python使用Selenium webdriver单击javascript元素时出现问题

通过Python使用Selenium webdriver单击javascript元素时出现问题,python,selenium,webdriver,Python,Selenium,Webdriver,希望有人能帮我指出正确的方向。我正在登录防火墙并尝试单击一个javascript按钮,该按钮位于使用Python和Firefox webdriver的框架中 首先,我要做的是: 抱歉,无法嵌入图像,因为这是我的第一篇文章 切换到框架后,我可以通过xpath找到元素,没有错误,这告诉我我在正确的位置 driver.switch_to_frame("outlookFrame") element = driver.find_element_by_xpath('//*[@id="nav_head2_t

希望有人能帮我指出正确的方向。我正在登录防火墙并尝试单击一个javascript按钮,该按钮位于使用Python和Firefox webdriver的框架中

首先,我要做的是:

抱歉,无法嵌入图像,因为这是我的第一篇文章

切换到框架后,我可以通过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

还有几件事要补充。我可以在web浏览器中看到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>

您试图单击的按钮是否在屏幕上可见?可能它被某个东西阻止了,或者必须执行任何其他操作才能显示此按钮?是的,在观看web浏览器处理命令和随后的故障时,我可以自己在生成的浏览器中手动单击该按钮。没有其他按钮需要在手动之前单击。您好。我对Python和selenium非常陌生。我正试图在框架内点击JS按钮。你介意发布完整的代码吗,这样我就可以进行反向工程并进一步工作了?会有很大帮助的!
driver.find_element_by_xpath('/html/body/div[2]/div/div[4]/div[7]/div/a').click()