免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1160 | 回复: 0
打印 上一主题 下一主题

Qwebview 连续操作网页问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-05-10 11:25 |只看该作者 |倒序浏览
我现使用QT的控件Qwebview控件来操作网页(比如:http—)


当我如图输入名字及手机号时(手机号随便输入),点击“发送验证码”时网页会弹出输入验证码窗口,


我使用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()
          #以下输入验证码。并点确认。

现的问题我使用以上代码,能正常出现显示验证码的页面,我也但得到验证码时,得到的图片总是不对,
但我只执行到这里,然后等待这里运行完成后,我用另外一个按扭事件调用self.get_check()来得到的验证图片就是正常的,

后来研究发现,主要是在我调用得到验证码图片的函数时finishLoading还没执行完成,这时得到有图片还不对,要等待finishLoading执行完成后,得到的图片才对。


针对上面的问题,我想了两方法:
1.可不可以在上面的代码中调用( self.click_send(document) )时直接使用异步调用(试了一下,qt中能用 thread 出错),比如postevent,可在网上找了很多也没找到postevent的使用方法,这就能使用finishLoading先执行完成,而在click_send执行时取到验证码的图片。所以求异步调用事件方法;

2.连接一个槽,使用 finishLoading 完成后再操作 click_send 。可我也不知这个应该乍么写。

求上面的两法的解决办法,或者其它方法,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP