我现在也遇到了一个问题,同求解答,利用pyqt5驱动浏览器的时候,注入js,我想全程使用js模拟点击,跳转页面等。但是当我使用相同的代码,runjavascript的时候,发现这几段代码一直在加载,导致我的步骤无法正常完成。
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWebEngineWidgets import QWebEngineView
from PyQt5.QtCore import QUrl
import time
app = QApplication([])
view = QWebEngineView()
view.load(QUrl("http://www.flyscoot.com/"))
view.show()
page = view.page()
def test1():
# page.runJavaScript("alert('hello world')")# go
page.runJavaScript("document.getElementsByClassName('radio-inline')[1].click()")
page.runJavaScript("document.getElementById('oneway_from').value='广州 (CAN)'")
page.runJavaScript("document.getElementById('oneway_to').value='新加坡 (SIN)'")
page.runJavaScript("document.getElementById('oneway_departuredate').value='2018年8月31日'")
page.runJavaScript("document.getElementsByClassName('btn--booking')[1].click()")
############################ 分割线 ##################################
page.runJavaScript("document.getElementsByClassName('price--sale')[0].click()")
page.runJavaScript("document.getElementsByClassName('heading-4')[0].click()")
page.runJavaScript("document.getElementsByClassName('btn-submit')[0].click()")
############################ 分割线 ##################################
page.runJavaScript("document.getElementById('selecttitle1').value='MR'")
page.runJavaScript("document.getElementById('revPassengersInput_PassengerInfantModels_PassengersInfo_0__First').value='tom'")
page.runJavaScript("document.getElementById('revPassengersInput_PassengerInfantModels_PassengersInfo_0__Last').value='wang'")
page.runJavaScript("document.getElementById('revPassengersInput_PassengerInfantModels_PassengersInfo_0__DayOfBirth').value='12'")
page.runJavaScript("document.getElementById('revPassengersInput_PassengerInfantModels_PassengersInfo_0__MonthOfBirth').value='12'")
page.runJavaScript("document.getElementById('revPassengersInput_PassengerInfantModels_PassengersInfo_0__YearOfBirth').value='1995'")
page.runJavaScript("document.getElementById('revPassengersInput_PassengerInfantModels_PassengersInfo_0__Nationality').value='CN'")
page.runJavaScript("document.getElementsByClassName('radio-inline').click()")
page.runJavaScript("document.getElementsByClassName('btn-submit').click()")
############################ 分割线 ##################################
page.runJavaScript("document.getElementsByClassName('btn-submit').click()")
page.runJavaScript("document.getElementById('nextFlightButton').click()")
############################ 分割线 ##################################
page.runJavaScript("document.getElementsByClassName('btn-submit').click()")
############################ 分割线 ##################################
page.runJavaScript("document.getElementById('revContactInput_WorkPhone_Number').value='xxx'")
page.runJavaScript("document.getElementById('emailContact').value='xxx'")
page.runJavaScript("document.getElementsByClassName('form-control').value='xxx'")
page.runJavaScript("document.getElementsByClassName('radio-inline').click()")
page.runJavaScript("document.getElementById('revContactInput_ContactViewModel_AddressLine1').value='guojiaqiao'")
page.runJavaScript("document.getElementById('revContactInput_ContactViewModel_City').value='chengdu'")
page.runJavaScript("document.getElementById('revContactInput_ContactViewModel_CountryCode').value='CN'")
page.runJavaScript("document.getElementById('revContactInput_ContactViewModel_ProvinceState').value='FJ'")
page.runJavaScript("document.getElementById('revContactInput_ContactViewModel_PostalCode').value='401122'")
page.runJavaScript("document.getElementsByClassName('tab')[2].click()") # Alipay
page.runJavaScript("document.getElementsByClassName('push-checkbox')[1].click()") # 接受条约
page.runJavaScript("document.getElementsByClassName('btn-submit').click()") # go
view.loadFinished.connect(test1)
app.exec_()