我相信这是一个非常具有挑战性的问题。
我的目标网页为click here
你看到有一个带有文字的按钮" Jouw zoekertje GRATIS PLAATSEN"橙色背景。如果您在常规浏览器上点击此链接,则会转到" http://www2.kapaza.be/nl/ai"。那部分没问题。
现在我在Qt的QWebView上做同样的事情。我认为如果它是Qt或任何其他环境并不重要。我相信它会表现得一样。会发生的是,当我将此链接加载到我的QWebView时,它只是不加载任何东西。有东西继续加载,但没有任何可见的出现。我认为这是对网站的一种保护。在我的应用程序中,我需要以编程方式单击此链接。到目前为止,我已经多次为其他链接或按钮做了类似的事情,但是没有它们在这个目标链接上工作。谁能告诉我可能是什么问题?
首先我认为这是因为饼干。我在我的软件上启用了它们,但仍然是相同的。
答案 0 :(得分:0)
根据我使用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();')
由于我没有看到明显的问题,可能只是你犯了一个小错误,所以尝试上面的代码可能有所帮助。
如果这有点帮助,这里有几点需要考虑:
webView.settings().setAttribute(QWebSettings.AutoLoadImages, False)
... wait(10) webView.reload()
总而言之 - 这只是QWebView有时会发生的事情之一。您只需要熟悉变通方法,学会识别这些事件并有效地处理它们。底线是 - 我无法找到页面上的任何特别错误 - 这是个好消息!你可以用它做任何你想做的事。尝试我提到的步骤,如果这样做不起作用,请提交代码的相关部分。
祝你好运