Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa Swift:如何在WKWebView中使用javascript自动单击html_Javascript_Swift_Wkwebview - Fatal编程技术网

Cocoa Swift:如何在WKWebView中使用javascript自动单击html

Cocoa Swift:如何在WKWebView中使用javascript自动单击html,javascript,swift,wkwebview,Javascript,Swift,Wkwebview,我正在WKWebView中加载html页面,需要单击一个链接。例如加载apple.com override func viewDidAppear() { super.viewDidAppear() webView.load(urlString: "https://www.apple.com") } 以及查找要单击的链接: func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!){ we

我正在WKWebView中加载html页面,需要单击一个链接。例如加载
apple.com

override func viewDidAppear() {
    super.viewDidAppear()
    webView.load(urlString: "https://www.apple.com")
}
以及查找要单击的链接:

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!){
    webView.evaluateJavaScript("document.getElementsByClassName('cta-links')[0].innerHTML") { (result, error) in
        if error != nil {
            print(error?.localizedDescription ?? "")
        }
        if result != nil{
            print("code with links \(result)")
        }
    }

}
我将得到的输出是:

<a href="/us/shop/goto/buy_iphone/iphone_xr" class="cta more" aria-label="Buy now with trade in" data-analytics-title="buy now with trade-in" data-analytics-region="buy">Buy<span class="visuallyhidden">with trade in</span></a>

<a href="/us/shop/goto/trade_in" class="cta more" aria-label="Learn more about trade in" data-analytics-title="Learn more about trade-in" data-analytics-region="learn more">Learn more</a>

但我想问你们的问题是,我如何点击这些链接中的一个,例如在这个链接上:

<a href="/us/shop/goto/trade_in" class="cta more" aria-label="Learn more about trade in" data-analytics-title="Learn more about trade-in" data-analytics-region="learn more">Learn more</a>

有一种方法可以通过javascript或swift中的任何其他方式单击该链接吗


非常感谢您的帮助。

要单击以下链接,您需要以某种方式标识它,例如,我将使用标签,因为类不是唯一的,理想情况下您应该有一个ID

<a href="/us/shop/goto/trade_in" class="cta more" aria-label="Learn more about trade in" data-analytics-title="Learn more about trade-in" data-analytics-region="learn more">Learn more</a>
然后在脚本中,调用方法


这将模拟单击并将您重定向到href中给定的路径。

您对“myCheck”的意思是什么?这只是我给您的href的ID,然后我在javascript中按ID抓取该元素,然后使用.click()方法。问题是URL没有我发布的每个代码的ID。他们有一个类。你需要某种类型的唯一标识符,否则你会触发对所有带有你指定类名的链接的点击。你可以发布一个例子吗?
let elementToClick = document.querySelectorAll('[aria-label="Learn more about trade in"]')[0];
elementToClick.click();