想要以编程方式点击网站按钮


Want to Click on a Website Button Programatically

我想点击一个已经在进行的网站按钮。例如:比如url: www.google.com..我想点击谷歌搜索按钮通过使用任何方法在PHP, Javascript, Jquery和Ajax编程。如果有人知道答案。请告诉我并提供源代码。

注意:我们不需要创建自己的按钮,我们想通过使用类和id来点击网站按钮。

我想试试这个,看起来像这样,但不成功,我想点击学习HTML按钮,显示在iframe…在w3school网站..

<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<iframe src="http://www.w3schools.com" width="800" height="400"></iframe>
<script>
//setInterval(function () {$("#hand_1151079882").click();}, 3000);
function clime(){
setInterval(function () {document.getElementById("#w3-btn").click();}, 3000);
alert();
}
//using javascript 
$(document).ready(function () {
$(".cli").on('click', function(event){
    $("#w3-btn").trigger('click');
});
});
</script>
<input type="button" class="cli" name="clime" value="submit" onclick="clime()">

您需要为iframe设置id

var iframe = document.getElementById('w3schools-home');
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
innerDoc.getElementsByClassName('w3-btn')[0].click();

[0]是按钮学习HTML,有19个元素有w3-btn

测试和工作w3schools自己试试»

IMPORTANT:确保iframe在同一域中,否则您无法访问其内部。这将是跨站点脚本。


作为请求,这里的例子PHP获取元素和重新创建到您自己的站点。

<?php
$url='http://www.w3schools.com/css/default.asp'; // or use $_GET['url']
$scheme=parse_url($url)['scheme'];
$host=parse_url($url)['host'];
$domain=$scheme.'://'.$host;
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_HEADER, 0);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,CURLOPT_TIMEOUT,30);
curl_setopt($ch,CURLOPT_POST, 0);
$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTML(substr(curl_exec($ch), curl_getinfo($ch, CURLINFO_HEADER_SIZE)));
$xpath = new DOMXpath($dom);
$aElement = $xpath->query('//a');
$length = $aElement->length;
$links=array();
for ($i = 0; $i < $length; $i++) {
    $element = $aElement->item($i);
    if ($element->tagName=='a' && trim($element->textContent)<>'') {
        foreach ($element->attributes as $attr) {
            $attrName = $attr->nodeName;
            $attrVal = $attr->nodeValue;
            if($attrName=='href' && str_replace(';','',$attrVal)<>'javascript:void(0)'){
                if(substr($attrVal, 0, 1)=='/'){
                    $links[trim($element->textContent)]=$domain.$attrVal;
                }else if(substr($attrVal, 0, 4)=='http'){
                    $links[trim($element->textContent)]=$attrVal;
                }
            }
        }
    }
}
foreach ($links as $key=>$value) {
    echo '<a href="'.$value.'">'.$key.'</a> | ';
}

您可以创建一个javascript函数从iframerequest AJAX获得URL到PHP,上面有脚本,您可以使用echo(但需要从我的脚本中作为示例)或json_encode到数组$links,然后从其他url/网站到您的网站reCREATED按钮。

或仅echo到您的网站。

我的脚本仍然需要改进来处理使用'../''foldername/'的属性href的值

只是提醒,对于iframe上的get access ELEMENTS,指向不同的域是不可能的。

您似乎错过了以编程方式单击的id为w3-btn的元素。

而且,这两个似乎都在做同样的事情…

function clime(){
setInterval(function () {document.getElementById("#w3-btn").click();}, 3000);
alert();
}

$(document).ready(function () {
$(".cli").on('click', function(event){
    $("#w3-btn").trigger('click');
});
});

都试图单击id为w3-btn的元素,只是以不同的方式。你只需要其中一个。

这可能有帮助:

<script>
jQuery(function(){
   jQuery('#modal').click();
});
</script>

我从这里得到了这个答案