亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1219 | 回復: 0
打印 上一主題 下一主題

Qwebview 連續(xù)操作網(wǎng)頁問題 [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2016-05-10 11:25 |只看該作者 |倒序瀏覽
我現(xiàn)使用QT的控件Qwebview控件來操作網(wǎng)頁(比如:http—)


當我如圖輸入名字及手機號時(手機號隨便輸入),點擊“發(fā)送驗證碼”時網(wǎng)頁會彈出輸入驗證碼窗口,


我使用QT生成在窗口,窗口上放置了一個Qwebview,并 self.webView.loadFinished.connect(self.finishLoading),如下:

class DlgWebTest(QDialog):
    def __init__(self, *args, **argvs ):
        super(DlgWebTest, self).__init__(*args, **argvs)
        self.webView = QWebView(self)
        self.webView.loadFinished.connect(self.finishLoading)
        self.showMaximized()
        self.webView.showMaximized()
        self.first_load = True

    def setUrl(self, url):
        self.webView.setUrl(url)
  
    def finishLoading(self):
        # Begin document inspection.
        print('finisthloading')
        frame = self.webView.page().mainFrame()
        document = frame.documentElement()
        time.sleep(3)
        self.click_send(document)


        print('操作完成')
   
    def click_send(self,document):
        z = document.findFirst('input[class="name"]')
        z.setAttribute('value',u'我不知道')

        z = document.findFirst('input[class="tels fl phone"]')
        z.setAttribute('value',u'1519879021')

        btn = document.findFirst('input[class="get_yz"]')
        btn.evaluateJavaScript("this.click()")
        #以下顯示驗證碼。
        
         #得到驗證碼
         self.get_check()
          #以下輸入驗證碼。并點確認。

現(xiàn)的問題我使用以上代碼,能正常出現(xiàn)顯示驗證碼的頁面,我也但得到驗證碼時,得到的圖片總是不對,
但我只執(zhí)行到這里,然后等待這里運行完成后,我用另外一個按扭事件調(diào)用self.get_check()來得到的驗證圖片就是正常的,

后來研究發(fā)現(xiàn),主要是在我調(diào)用得到驗證碼圖片的函數(shù)時finishLoading還沒執(zhí)行完成,這時得到有圖片還不對,要等待finishLoading執(zhí)行完成后,得到的圖片才對。


針對上面的問題,我想了兩方法:
1.可不可以在上面的代碼中調(diào)用( self.click_send(document) )時直接使用異步調(diào)用(試了一下,qt中能用 thread 出錯),比如postevent,可在網(wǎng)上找了很多也沒找到postevent的使用方法,這就能使用finishLoading先執(zhí)行完成,而在click_send執(zhí)行時取到驗證碼的圖片。所以求異步調(diào)用事件方法;

2.連接一個槽,使用 finishLoading 完成后再操作 click_send ?晌乙膊恢@個應(yīng)該乍么寫。

求上面的兩法的解決辦法,或者其它方法,謝謝
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP