нажав на ссылку без идентификатора Swift WebView - PullRequest
0 голосов
/ 22 апреля 2020

Я написал код для автоматического входа в систему и делал некоторые вещи для своих школьных работ. Я написал этот код в python3 с селеном, и он отлично работает, код для python такой:

from selenium import webdriver
driver= webdriver.Chrome(executable_path="/Users/kasra/Desktop/chromedriver")
driver.get("https://karsanj.net/login.php")
driver.maximize_window()
driver.find_element_by_id("username").send_keys("********")
driver.find_element_by_id("password").send_keys("****")
driver.find_element_by_class_name("btn").click()
driver.find_element_by_link_text("گزارش ها").click()
driver.find_element_by_link_text("پرونده دانش آموزی").click()
driver.find_element_by_id("study").click()

Так что теперь я преобразовываю этот код в программу swift, чтобы легко запускать ее на мой телефон. В командах j4 и j5, которые я написал, есть ошибка, и я не могу понять, каков правильный синтаксис, чтобы он работал:

import UIKit
import WebKit


class ViewController: UIViewController , WKNavigationDelegate{
    @IBOutlet weak var user: UITextField!
    @IBOutlet weak var pass: UITextField!
    @IBOutlet var webView: WKWebView!
    override func viewDidLoad() {
        super.viewDidLoad()
        let url = URL(string: "https://karsanj.net/login.php")!
        webView.navigationDelegate = self
        webView.load(URLRequest(url : url))
        createToolbar()
    }
    func createToolbar(){
           let Toolbar = UIToolbar()
           Toolbar.sizeToFit()

           let done = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.done, target: self, action: #selector(self.doneClicked))
           Toolbar.setItems([done], animated: false)
           Toolbar.isUserInteractionEnabled = true

           user.inputAccessoryView = Toolbar
           user.autocorrectionType = .no
           pass.inputAccessoryView = Toolbar
           pass.autocorrectionType = .no
       }
       @objc func doneClicked() {
           view.endEditing(true)
       }
    @IBAction func saat(){
        view.endEditing(true)
        let j1="document.getElementById('username').value='\(user.text!)';"
        let j2="document.getElementById('password').value='\(pass.text!)';"
        let j3="document.getElementsByClassName('btn')[0].click();"
        let j4="document.querySelector('#گزارش ها a')[0].click();"
        let j5="document.querySelector('#پرونده دانش آموزی a')[0].click();"
        let j6="document.getElementById('study')[0].click();"
        webView.evaluateJavaScript(j1, completionHandler: nil)
        webView.evaluateJavaScript(j2, completionHandler: nil)
        webView.evaluateJavaScript(j3, completionHandler: nil)
        webView.evaluateJavaScript(j4, completionHandler: nil)
        webView.evaluateJavaScript(j5, completionHandler: nil)
        webView.evaluateJavaScript(j6, completionHandler: nil)

    }


}

...