|
最近新学的selenium+python,在firefox上安装了IDE ,录制了登陆和点击页面的操作。录制完成之后回放,正常完成。导出为python的webdriver脚本,运行脚本却提示找不到元素。
页面的代码截图如下:如图所示两个箭头处,第一个箭头div下面的按钮可以搜索到并且点击。但是第二个箭头的div下面的选中区域(最下方)的addButton元素,在脚本中无法选中。
我的生成的脚本是这样的:
- def test_c_s_yquery(self):
- driver = self.driver
- driver.get(self.base_url + "/PDDM/user!login.action")
- driver.find_element_by_id("username").clear()
- driver.find_element_by_id("username").send_keys("D4760")
- driver.find_element_by_id("password").clear()
- driver.find_element_by_id("password").send_keys("123456")
- driver.find_element_by_css_selector("img").click()
- driver.find_element_by_id("aLink30").click()
- time.sleep(10)
- driver.find_element_by_id("aLinkcustomMenu147").click()
- # ERROR: Caught exception [ERROR: Unsupported command [selectWindow | name=Iframe | ]]
- driver.find_element_by_id("addButton").click() ---------------------------找按钮的操作在这一行
- driver.find_element_by_id("button5").click()
- # ERROR: Caught exception [ERROR: Unsupported command [selectWindow | name=Iframe | ]]
- driver.find_element_by_id("query_name").clear()
- driver.find_element_by_id("query_name").send_keys(u"cs")
- driver.find_element_by_id("button5").click()
- Select(driver.find_element_by_id("product_line")).select_by_visible_text(u"计费")
- driver.find_element_by_id("myRelatBug0").click()
- driver.find_element_by_id("button5").click()
- time.sleep(10)
复制代码 报错信息如下:
raise exception_class(message, screen, stacktrace)
NoSuchElementException: Message: Unable to locate element: {"method":"id","selector":"addButton"}
根据报错信息可以看出是找不到addButton 这个,想请教各位大神的是:
1.find_element 函数是如何工作的,如何能保证在一个页面中找到指定的元素。
2.为什么图中第一个div下的元可以找到,而第二个不能找到。是不是需要一个切换操作,进行一个类似于模块的选中之后,才能找到其下的元素。
承蒙各位老师指教,
小可感激不尽,谢谢。
|
|