【发布时间】:2014-07-17 05:11:30
【问题描述】:
将 Selenium 与 python 结合使用,我正在尝试自动化我的 GUI,该 GUI 在左窗格中有一个菜单,在右窗格中有一个内容区域。以下是正在使用的版本: 硒:2.42.1 蟒蛇:2.7.8 火狐:28
单击左侧的菜单时,会在内容区域中加载一个页面。菜单像 Windows 资源管理器一样可进行多级扩展。您单击级别 1 和级别 2 菜单出现。同样,当您单击 2 级菜单时,您会看到 3 级菜单。
我可以在菜单中达到 3 级。在这一层,有一个网名。当我单击它时,预计屏幕将在页面右侧的内容区域中打开。但我在这里面临一个问题。内容区域中的页面无法加载,并且 Firefox 变得无响应。然后我必须手动杀死firefox。当我手动打开屏幕(不使用 Selenium)时,Firebug 显示以下上下文区域的格式:
[div id="contentArea"]
[iframe id="main"]
[html class="dj_gecko dj_contentbox"]
dbody class="mainBody appworks tundra"]
[div id="mainBC"]
[div id="contentBC]
[div id="contentBottom"]
[span class="dijit dijitReset dijitLeft dijitInline dijitButton"]
[span class="dijitReset dijitRight dijitInline"]
[span class="dijitReset dijitInline dijitButtonNode"]
[button id="insertButton" class="dijitReset dijitStretch dijitButtonContents"]
[span class="dijitReset]
[span id="insertButton_label]
我想在内容区域单击这个 insertButton,但是在 Selenium 中运行它时没有加载框架。
下面是我的python代码:
driver.find_element_by_xpath("//*[text()=\"Diameter\"]").click() # These are menus - level 1
driver.find_elements_by_xpath("//*[text()=\"Configuration\"]").click() # level 2
driver.find_element_by_xpath("//*[text()=\"Application Ids\"]").click() # level 3
try:
print "before switch"
self.driver.switch_to_frame(0) # There is only one frame in Contet area
print "after switch"
driver.find_element_by_css_selector("#insertButton").click()
print "after finding Insert"
#WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//*[text()=\"Insert\"]"))).click()
#driver.find_element_by_xpath("//*[text()=\"Insert\"]").click()
except Exception as e:
print e
没有异常被捕获,但 Firefox 停止响应。我也没有在 Firefox 中看到“无响应的脚本”警告。我怀疑这是 Firefox、Python 或 Selenium 的不兼容版本。我在 Selenium 页面上重新验证了它们,但它们似乎是兼容的。我在日志文件中没有看到“找到插入后”。
【问题讨论】:
标签: python firefox selenium frame