| | 1 | 在测试家居网论坛发帖功能时,无法定位到ubb编辑器. |
| | 2 | [[BR]] |
| | 3 | 后研究发现是因为ubb编辑器用iframe实现,要定位到iframe中的元素,首先要将webdriver切到该iframe,示例代码如下: |
| | 4 | [[BR]] |
| | 5 | {{{ |
| | 6 | ...... |
| | 7 | #设置帖子标题 |
| | 8 | driver.find_element_by_id("subject").send_keys(str(uuid.uuid4())) |
| | 9 | driver.find_element_by_css_selector("body").click() |
| | 10 | #选择分类 |
| | 11 | driver.find_element_by_link_text(u"搭配").click() |
| | 12 | |
| | 13 | #切到编辑器iframe,设置帖子内容 |
| | 14 | driver.switch_to_frame("e_iframe") |
| | 15 | driver.find_element_by_css_selector("body").send_keys(str(uuid.uuid4())) |
| | 16 | #切到默认的frame |
| | 17 | driver.switch_to_default_content() |
| | 18 | #上传图片一张 |
| | 19 | driver.find_element_by_id("SWFUpload_0").click() |
| | 20 | ....... |
| | 21 | }}} |
| | 22 | 另外,要操作完iframe要切换到原来的框架,调用driver.switch_to_default_content() |