Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.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
Javascript Python selenium-如何在动态网站上找到登录元素;s仅通过检查元件可见_Javascript_Jquery_Python_Selenium_Web Scraping - Fatal编程技术网

Javascript Python selenium-如何在动态网站上找到登录元素;s仅通过检查元件可见

Javascript Python selenium-如何在动态网站上找到登录元素;s仅通过检查元件可见,javascript,jquery,python,selenium,web-scraping,Javascript,Jquery,Python,Selenium,Web Scraping,我正试图在python中使用Selenium在web上抓取登录页面后面的一些数据。通过查看源代码,页面源代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>sometitle</title> </h

我正试图在python中使用Selenium在web上抓取登录页面后面的一些数据。通过查看源代码,页面源代码如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>sometitle</title>
</head>

<body>

    <div id="id1"></div>
    <div id="wrapper">Loading...</div>
    <div id="id2">
        ... some code ...
    </div>
        ... some code ...

    <script data-main="main" src="libs/requirejs.js"></script>

</body>
</html>
然后,我通过inspect elements检查了元素,并在该页面上找到了元素:

<div id="wrapper"><div id="login-base" class="base-wrapper">
    <div id="header" class="clearfix">
        ...
    </div>

    <div id="content" class="content"><div class="container-shadow" id="login-container" style="background-image: url(../images/box-bg.png);">
<br>
<h1>Header</h1>
    <form action="" method="post" class="form small">
        <fieldset>
            <div class="group-field-block">
                <label class="short">Username:</label><input type="username" name="callback_0" value="" data-validator="required" required="" data-validator-event="keyup">     
            </div>

            <div class="group-field-block">
                <label class="short">Password:</label><input type="password" name="callback_1" value="" data-validator="required" required="" data-validator-event="keyup">     
            </div>

            <div class="group-field-block float-left">
                <input name="callback_2" type="submit" class="button" index="0" value="Login">     
            </div>

            <ul class="link-box float-left"></ul>

        </fieldset>
    </form>
</div>
</div>
</div>
</div>

...

标题 用户名: 密码:

    我的问题是-如何在页面上找到用户名/密码/提交元素,这些元素只能从inspect元素中看到,而不能从页面源中看到?做了一些研究,似乎该网站是作为动态网站建立的,它通过jquery或javascript或其他方式重定向到其他页面。我不太明白发生了什么事。真的很感谢一些帮助或一些见解

    没有区别,通常您的代码是正确的,除了在执行任何“find_element”之前应该等待页面加载+确保登录表单不在iframe中您是在问如何使用Selenium来定位元素吗?或者,您如何使用web浏览器的工具定位元素?嗨@Kiril s。非常感谢您的回复!当我运行上述selenium脚本时,它会显示一条“找不到'callback_0'(用户名)”错误消息。我尝试过多次重新加载和等待,但页面源代码与原来一样。这部分正在加载。。。不会改变的。它的内部html代码应该包含一个使用我正在寻找的POST方法的表单。但是,它不在那里。只有在我检查元素时才能找到内部人员的表单…您好@Buaban非常感谢您的回复!我想我不明白为什么我所寻找的元素没有出现在网站源代码上。因为我使用的是Selenium,如果可以在Selenium代码中完成,那就太好了。如果没有,那么使用什么工具来定位要发送的元素以自动登录网站。非常感谢您的帮助!如果您想查看更新后的源代码,可以从浏览器中获取。通过名称(“body”)查找元素。获取属性(“outerHTML”)。没有区别,通常您的代码是正确的,除非您应该等待页面加载,然后再执行任何“查找元素”+确保登录表单不在iframe中。您是否在询问如何使用Selenium定位元素?或者,您如何使用web浏览器的工具定位元素?嗨@Kiril s。非常感谢您的回复!当我运行上述selenium脚本时,它会显示一条“找不到'callback_0'(用户名)”错误消息。我尝试过多次重新加载和等待,但页面源代码与原来一样。这部分正在加载。。。不会改变的。它的内部html代码应该包含一个使用我正在寻找的POST方法的表单。但是,它不在那里。只有在我检查元素时才能找到内部人员的表单…您好@Buaban非常感谢您的回复!我想我不明白为什么我所寻找的元素没有出现在网站源代码上。因为我使用的是Selenium,如果可以在Selenium代码中完成,那就太好了。如果没有,那么使用什么工具来定位要发送的元素以自动登录网站。非常感谢您的帮助!如果您想查看更新的源代码,可以从浏览器中获取。按名称(“body”)查找元素。获取属性(“outerHTML”)。
    <div id="wrapper"><div id="login-base" class="base-wrapper">
        <div id="header" class="clearfix">
            ...
        </div>
    
        <div id="content" class="content"><div class="container-shadow" id="login-container" style="background-image: url(../images/box-bg.png);">
    <br>
    <h1>Header</h1>
        <form action="" method="post" class="form small">
            <fieldset>
                <div class="group-field-block">
                    <label class="short">Username:</label><input type="username" name="callback_0" value="" data-validator="required" required="" data-validator-event="keyup">     
                </div>
    
                <div class="group-field-block">
                    <label class="short">Password:</label><input type="password" name="callback_1" value="" data-validator="required" required="" data-validator-event="keyup">     
                </div>
    
                <div class="group-field-block float-left">
                    <input name="callback_2" type="submit" class="button" index="0" value="Login">     
                </div>
    
                <ul class="link-box float-left"></ul>
    
            </fieldset>
        </form>
    </div>
    </div>
    </div>
    </div>