购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.8 本章练习

1.根据页面元素展示执行不同的操作

任务需求:假设我们遇到一个网页,该网页上有一个元素会随机展示或隐藏。网页内容如下:

     <!DOCTYPE html>
     <html lang="en">
     <head>
     <meta charset="UTF-8">
     <title>Random Display</title>
     <script>
         window.onload = function() {
             var shouldDisplay = Math.random() < 0.5;
             var element = document.getElementById('randomElement');
             if (shouldDisplay) {
                  element.style.display = 'block';
             } else {
                  element.style.display = 'none';
             }
         };
     
         function sawElement() {
             alert('我看到隐藏元素了!');
         }
     
         function didNotSeeElement() {
             alert('我没有看到隐藏元素!');
         }
     </script>
     </head>
     <body>
         <div id="randomElement" style="display: none;">
             <h1>Hello, World!</h1>
             <p>这个元素你不一定可以看到哦</p>
         </div>
         <button onclick="sawElement()">看到隐藏元素</button>
         <button onclick="didNotSeeElement()">没有看到隐藏元素</button>
     </body>
     </html>

请使用Selenium WebDriver框架,根据页面上的具体展示结果,控制浏览器执行相应的单击操作以选择不同的按钮。

2.Selenium WebDriver框架显式等待功能练习

任务需求:假设我们遇到一个网页,其中有一个元素的加载时间非常不稳定。我们希望在爬取数据的过程中等待该元素5秒。如果在5秒内该元素未加载完成,则选择放弃爬取该元素的内容。网页代码如下:

     <!DOCTYPE html>
     <html lang="en">
     <head>
     <meta charset="UTF-8">
     <title>Delayed Element Addition</title>
     <script>
         window.onload = function() {
             var delay = Math.floor(Math.random() * 20000) + 1000;
             setTimeout(function() {
                 var element = document.createElement('div');
                 element.innerHTML = '<p id="delay-elem">This element was added after a random
delay.</p>';
                 document.body.appendChild(element);
             }, delay);
         };
     </script>
     </head>
     <body>
         <h1>Welcome to the Page</h1>
     </body>
     </html>

请使用Selenium WebDriver框架的显式等待功能完成上述需求。

3.利用BrowserMob Proxy动态修改HTTP请求

任务需求:测试一个网站上不同登录用户的返回结果。我们可以获得多个用户的Cookie信息,但无法获取用户的用户名和密码。请结合Selenium WebDriver框架和BrowserMob Proxy,动态设置用户的Cookie信息,以实现用户的动态切换功能。 i0zDJ/VlLLxTyMx8Ly0BoIGLc5hegkNLFWbJ6GajCVCz4p5A6Tn1vtVOWcvWvjjL

点击中间区域
呼出菜单
上一章
目录
下一章
×