Qt 在此特定Web链接上模拟用户单击失败

Qt 在此特定Web链接上模拟用户单击失败,qt,qt4,qwebview,qwebkit,qwebelement,Qt,Qt4,Qwebview,Qwebkit,Qwebelement,我认为这是一个相当具有挑战性的问题 我的目标网页是 您可以看到有一个按钮,其文本为Jouw zoekertje GRATIS PLAATSEN,背景为橙色。如果您在常规浏览器上单击此链接,它将转到。那部分很好 现在我在Qt中的QWebView上做同样的事情。我认为无论是Qt还是其他环境都没有关系。我相信它也会有同样的表现。结果是,当我将这个链接加载到我的QWebView时,它什么都不加载。有些东西一直在加载,但什么也看不见。我认为这是对网站的一种保护。在我的应用程序中,我需要以编程方式单击此链接

我认为这是一个相当具有挑战性的问题

我的目标网页是

您可以看到有一个按钮,其文本为Jouw zoekertje GRATIS PLAATSEN,背景为橙色。如果您在常规浏览器上单击此链接,它将转到。那部分很好

现在我在Qt中的QWebView上做同样的事情。我认为无论是Qt还是其他环境都没有关系。我相信它也会有同样的表现。结果是,当我将这个链接加载到我的QWebView时,它什么都不加载。有些东西一直在加载,但什么也看不见。我认为这是对网站的一种保护。在我的应用程序中,我需要以编程方式单击此链接。到目前为止,我已经为其他链接或按钮做了很多次类似的事情,但没有一个在这个目标链接上起作用。谁能告诉我有什么问题吗


首先我认为这是因为饼干。我在我的软件上启用了它们,但仍然是一样的。

根据我使用QWebView进行自动化\模拟的经验,如果你做得正确,没有网站是防弹的。尤其是在模拟点击、滚动等客户端操作时

所以,我只是试着做你想做的事情,它工作了,页面加载,按钮点击和重定向

这是实现这一技巧的代码:

def tracker(self):
  return self.webView.page().currentFrame().documentElement()

qweb.load('http://www.kapaza.be/nl/index.htm')
button = qweb.tracker().findFirst('a[class="btn  homepage_btn"]')
button.evaluateJavaScript('this.click();')
由于我没有看到明显的问题,可能只是您犯了一个小错误,因此尝试上面的代码可能会有所帮助

如果这没有帮助,以下是一些需要考虑的事情:

代理-如果您通过QWebView的代理连接,某些页面可能无法加载或从未停止加载。试着把它关掉或者把它关掉,以确保。。。。 设置-它可能与篡改QWebView的设置有关。我将尝试添加:webView.settings.setAttributeQWebSettings.autolodimages,False 几秒钟后尝试调用reload。这对我起了好几次作用: 总而言之,这只是QWebView有时会发生的事情之一。您只需要熟悉变通方法,学会识别这些事件并有效地处理它们。底线是——我找不到这个页面有什么特别的问题——这是个好消息!你可以用它做任何你想做的事。尝试我提到的步骤,如果不起作用,请提交代码的相关部分

祝你好运

...
wait(10)
webView.reload()