Python + Selenium 入门之Discuz论坛实例

来源:互联网 发布:乔布简历 知乎 编辑:程序博客网 时间:2024/04/30 05:00

     以下是一段完整的Discuz论坛登录、发帖和回复的代码。使用Firefox的selenium IDE录制后进行整理,在IE下可正常运行。但在Firefox下进入版块时找不到[默认版块]元素、在Chrome下能进入版本和填写标题,但无法点击帖子内容的输入框。不得不说selenium的水还是很深滴~~~


# 启动浏览器,打开论坛登录页面

driver = webdriver.Firefox()

driver.implicitly_wait(30)
base_url = "http://192.168.63.94:1000/forum.php"
driver.get(self.base_url)

        
        #登录
        driver.find_element_by_id("ls_username").clear()
        driver.find_element_by_id("ls_username").send_keys("admin") #填写用户名
        driver.find_element_by_id("ls_password").clear()
        driver.find_element_by_id("ls_password").send_keys("123456")  #填写密码
        driver.find_element_by_css_selector("button.pn.vm").click()           #点击登录按钮

        
        
        

            #进入"默认版块"
            driver.set_page_load_timeout(10)

            driver.find_element_by_link_text(u"默认版块").click()


            #发帖
            driver.set_page_load_timeout(10)
            driver.find_element_by_css_selector(u"img[alt=\"发新帖\"]").click()#点击【发新贴】
            driver.set_page_load_timeout(10)
            #帖子标题
            driver.find_element_by_id("subject").clear()
            driver.find_element_by_id("subject").send_keys(post.title)#填写帖子标题
            #帖子内容
            driver.find_element_by_id("editorbox").click()
            driver.find_element_by_id("editorbox").send_keys(post.content)#填写帖子内容
            #提交
            driver.find_element_by_id("postsubmit").click()
            driver.set_page_load_timeout(10)

            
       
                #快速回复
                driver.find_element_by_id("fastpostmessage").clear()
                driver.find_element_by_id("fastpostmessage").send_keys(post.content)
                driver.find_element_by_id("fastpostsubmit").click()
                driver.set_page_load_timeout(10)
0 0