python爬虫中最麻烦的问题当属js渲染问题
这个webdriver提供了原生浏览器的js渲染,完美的规避了这个问题,但是就算是这样这个库也有缺陷,就是必须得安装原生的浏览器程序。
对于这个库的缺陷问题让人很头痛,必须得安装支持的浏览器才可以使用这个库,这让做爬虫的小鸡的配置有这一定的追求,但是退而求其次。这个库可以成为解决不了问题时的万金油
In [1]:
from selenium import webdriver
browser = webdriver.Chrome()
In [16]:
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://wwwtrojan.iacg.cf')
print(browser.page_source)
browser.close()
<html lang=""><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <title>EMPTY | SUNS</title> <meta name="description" content="这里是emptysuns的个人主页,目前站长仍在学习中,励志成为一个技术很牛的程序员。"> <meta name="keywords" content="emptysuns,空日,个人主页,程序员"> <link rel="icon" type="image/ico" href="//gravatar.loli.net/avatar/4cc893d113dd74ceca73f9863f2c5446/"> <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.4.1/css/bootstrap.min.css"> <link rel="stylesheet" href="https://cdn.staticfile.org/font-awesome/5.12.1/css/all.min.css"> <link rel="stylesheet" href="style.css"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer@1.10.1/dist/APlayer.min.css"> <script src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript"> if (window.location.href.indexOf("http://wwwtrojan.iacg.cf") > -1) { window.location.href='https://wwwtrojan.iacg.cf'; } </script> <link href="data:text/css,.waifu{position:fixed;bottom:0;z-index:99999;font-size:0}.waifu-tips{opacity:0;margin:-20px 0;padding:5px 10px;border:1px solid %23eb8c;border-radius:12px;background-color:%23edbb;box-shadow:0 3px 15px 2px %23b973;overflow:hidden;position:absolute;animation-delay:5s;animation-duration:50s;animation-iteration-count:infinite;animation-name:shake;animation-timing-function:ease-in-out;line-height:1.3em}.waifu-tool{display:none;color:%23aaa;position:absolute;right:-5px;top:30px}.waifu:hover .waifu-tool{display:block}.waifu-tool span{display:block;color:%23567;transition:.2s;padding:0 4px}.waifu %23live2d{position:relative}@keyframes shake{2%25{transform:translate(.5px,-1.5px)rotate(-.5deg)}4%25{transform:translate(.5px,1.5px)rotate(1.5deg)}6%25{transform:translate(1.5px,1.5px)rotate(1.5deg)}8%25{transform:translate(2.5px,1.5px)rotate(.5deg)}10%25{transform:translate(.5px,2.5px)rotate(.5deg)}12%25{transform:translate(1.5px,1.5px)rotate(.5deg)}14%25{transform:translate(.5px,.5px)rotate(.5deg)}16%25{transform:translate(-1.5px,-.5px)rotate(1.5deg)}18%25{transform:translate(.5px,.5px)rotate(1.5deg)}20%25{transform:translate(2.5px,2.5px)rotate(1.5deg)}22%25{transform:translate(.5px,-1.5px)rotate(1.5deg)}24%25{transform:translate(-1.5px,1.5px)rotate(-.5deg)}26%25{transform:translate(1.5px,.5px)rotate(1.5deg)}28%25{transform:translate(-.5px,-.5px)rotate(-.5deg)}30%25{transform:translate(1.5px,-.5px)rotate(-.5deg)}32%25{transform:translate(2.5px,-1.5px)rotate(1.5deg)}34%25{transform:translate(2.5px,2.5px)rotate(-.5deg)}36%25{transform:translate(.5px,-1.5px)rotate(.5deg)}38%25{transform:translate(2.5px,-.5px)rotate(-.5deg)}40%25{transform:translate(-.5px,2.5px)rotate(.5deg)}42%25{transform:translate(-1.5px,2.5px)rotate(.5deg)}44%25{transform:translate(-1.5px,1.5px)rotate(.5deg)}46%25{transform:translate(1.5px,-.5px)rotate(-.5deg)}48%25{transform:translate(2.5px,-.5px)rotate(.5deg)}50%25{transform:translate(-1.5px,1.5px)rotate(.5deg)}52%25{transform:translate(-.5px,1.5px)rotate(.5deg)}54%25{transform:translate(-1.5px,1.5px)rotate(.5deg)}56%25{transform:translate(.5px,2.5px)rotate(1.5deg)}58%25{transform:translate(2.5px,2.5px)rotate(.5deg)}60%25{transform:translate(2.5px,-1.5px)rotate(1.5deg)}62%25{transform:translate(-1.5px,.5px)rotate(1.5deg)}64%25{transform:translate(-1.5px,1.5px)rotate(1.5deg)}66%25{transform:translate(.5px,2.5px)rotate(1.5deg)}68%25{transform:translate(2.5px,-1.5px)rotate(1.5deg)}70%25{transform:translate(2.5px,2.5px)rotate(.5deg)}72%25{transform:translate(-.5px,-1.5px)rotate(1.5deg)}74%25{transform:translate(-1.5px,2.5px)rotate(1.5deg)}76%25{transform:translate(-1.5px,2.5px)rotate(1.5deg)}78%25{transform:translate(-1.5px,2.5px)rotate(.5deg)}80%25{transform:translate(-1.5px,.5px)rotate(-.5deg)}82%25{transform:translate(-1.5px,.5px)rotate(-.5deg)}84%25{transform:translate(-.5px,.5px)rotate(1.5deg)}86%25{transform:translate(2.5px,1.5px)rotate(.5deg)}88%25{transform:translate(-1.5px,.5px)rotate(1.5deg)}90%25{transform:translate(-1.5px,-.5px)rotate(-.5deg)}92%25{transform:translate(-1.5px,-1.5px)rotate(1.5deg)}94%25{transform:translate(.5px,.5px)rotate(-.5deg)}96%25{transform:translate(2.5px,-.5px)rotate(-.5deg)}98%25{transform:translate(-1.5px,-1.5px)rotate(-.5deg)}0%25,100%25{transform:translate(0,0)rotate(0)}}@font-face{font-family:Icons;src:url('data:font/woff2;base64,d09GMgABAAAAAAS8AAoAAAAACdgAAARwAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAgkoKhiyFTQsMAAE2AiQDDgQgBYcZByAbtwgjESZscZPsnwmZXO+MAXlehSLWFMMp1t9aRDGc/dHELRF8TX/77pLQWhUSo2tz3UU4sFiJBaEYJOP/j3n4L+W2dJCRzc34aZ55OAoBsDRnA2UiTC8DN8f07w/SclLA//9ezVz4LLF9UQMcwD/2y9iTk64lUJEC9ZTm1LFEC1akotQk3f5SxSV12VDfuIeigPgAnvTJPMF79yDxZy8UoeuMbgD9NBKmtp9vNBRiQrM94UxTKKuhcfvBgSz47TnLQKUQEvYb/wE7s1HjhdD3c1Twn4jEciBwiZdpRROxBBAXgHZAyJLY0oL7OK6yfC3CdH0OITIR8Or6jw9vRjzZdOiRkpr84MAGxJGNBx9iZbKX0KD8BiHyFmH6HiHyrlskv3v1bvES71+/x/Tty7dQv3nxpkC+cOUIjB29ehHTy9ePI3Ls2qVG6hxDxGNMSUYManSz11w4c2a9d+7cJZ03/TykOieMIhKqIrKecqJDkAOg3ljXJgcfJtt9fBit3wwmu4xblIzRbggqsfkSB3l3jVbWmjXTtHb2KrC8Tidn3Tq5tn69bq7/1cDUb5jixR7uN/ugbt7dnVh3zYJ9X/nldvINWx7PHkDA89XLjdv+qycQMD3HHXh8g+lsNnq9eWwyrBnsP/RN3m5eGlfR6ETIcxQPbR6ZvMGjwa7JFrJpmouraSpNNnd1STEfXERdXeiYgRQL5zLDN5ahhgahVm/G1/lsFWpgGGr5BW587aKNwozDbWxkIWyx14597zX8y7xwWlt7utD9V5hyk3tKuGOqEyskzuwRw8TdM/ECG5YQDMK80MbxHdE+3BkuILkuDFbuaPXYOJo9swJhYXKA1Xf7RHfwXEe2DQf+scGsED+zWwwT98wkCqyTY0pKRKM7+I//2QVIhZYwP394JWLHrO8/IgNx4XxhvtcZ6c682rO8I53xtM+dlm6DaGRxYJSzPlPYp0OtCqTAyPyCzD3KeyJFLWuNyh57mn0eNMON5byBzRWIkU1rn2u4HKkGfVXAHMD36KOxmfC/f5sbBWJvoFkCwYamRsFF939tRy+fgI0GuNFGpUcZG/QHw2EDCKNQsoKkSQlZqV1fmHug1GYQKszYW3RAq34u0GZUBLQbUAQdtrRf3GnHDmBFoQih1ZeApNMPZK1+9YX5H0qD/kJF9NlbjEKr5XCGNvuRDe1WYw46HMbpfqfTpL5/Cg2rvmanpMfsKWx1rubf5g8CGuAbZpGrb0zkz1aeXWYP9pndVD0TJ38NamPb1c8HR73HaNXRDsmE3eKIqK1gqWbwx3vqFLnw3H6S2aWxP/Jid8jTFZrBYzuMOQz0eziKrHD1oaBJdWm3etH/p9JEq/MwV/OvzV+rgAb4hlnk6iMxlbomB2aAs5W7CId1na8QHVVRwJk4UVYy9FNd+8drX0vLyDR1zgveY4a37jjLoWhR0qk93pnvH7UVLNUM/jiXsjTr5aFvS8obHSZEqYeyusOKBgGmNWokKtcY6wR5TE9KDlPbB073gQAA')}[class^=fui-]{font-family:Icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased}.fui-chat:before{content:'1'}.fui-eye:before{content:'2'}.fui-user:before{content:'3'}.fui-cross:before{content:'4'}" rel="stylesheet"></head> <body> <div id="main" class="container"> <div class="row my-card justify-content-center"> <div class="col-lg-4 photo-bg"></div> <div class="col-lg-8 card"> <h1>Hi,我是EMPTYSUNS</h1> <iframe frameborder="no" border="0" marginwidth="0" marginheight="0" width="330" height="86" src="//music.163.com/outchain/player?type=2&id=809268&auto=1&height=66"></iframe> <p>很荣幸您能访问我的网站! 目前我仍在学习中,励志成为一个技术很牛的程序员。 </p> <p> 我很喜欢的一句话:<br> In the shadow where you lay.I will be praying!<br> 你在隐匿于的阴影之地,我将为你献上祈祷 </p> <p>Catch me:</p> <div class="row"> <!--<button id="kaygb-blog" class="btn btn-primary col-lg-4">BLOG</button> <a href="https://blog.iacg.cf" id="kaygb-blog-a" target="_blank" class="btn btn-primary col-lg-4">BLOG</a> --> <a href="https://blog.acglove.cloud" target="_blank" class="btn btn-primary col-lg-4">Blog</a> <a href="https://github.com/emptysuns" target="_blank" class="btn btn-secondary col-lg-4">GitHub</a> <a href="admin@acglove.cloud" target="_blank" class="btn btn-success col-lg-4">Send Mail</a> <!--<a href="admin@acglove.cloud" target="_blank" id="kaygb-mail-a" class="btn btn-success col-lg-4">Send a Mail</a> <button id="kaygb-mail" class="btn btn-success col-lg-4">Send a Mail</button> --> </div> <h4 class="mt-4">or, keep your eyes on</h4> <ul class="social mt-1"> <li><a href="404.html"><i class="fab fa-weibo " aria-hidden="true"></i></a></li> <li><a href="https://github.com/XxyokixX"><i class="fab fa-github" aria-hidden="true"></i></a></li> <li><a href="https://t.me/Core_i0"><i class="fab fa-telegram" aria-hidden="true"></i></a></li> <li><a href="https://twitter.com/CodeFor_ACG"><i class="fab fa-twitter" aria-hidden="true"></i></a></li> <li><a href="404.html"><i class="fab fa-zhihu" aria-hidden="true"></i></a></li> </ul> <footer> <p>Copyright 2020 - Now <a href="./index.html" target="_blank">emptysuns</a> <br> 鸣谢: <a href="#" target="_blank" rel="nofollow">IACG</a> </p> <p></p> </footer> </div> </div> </div> <div id="aplayer" class="aplayer" data-order="random" data-id="20173709" data-server="netease" data-type="playlist" data-fixed="true" data-autoplay="true" data-volume="0.8"></div> <script src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js"></script> <script defer="" src="https://cdn.staticfile.org/twitter-bootstrap/4.4.1/js/bootstrap.min.js"></script> <script src="https://cdn.jsdelivr.net/gh/kaygb/kaygb@master/layer/layer.js"></script> <script src="https://cdn.jsdelivr.net/gh/kaygb/kaygb@master/js/v3.js"></script> <!-- 添加一个看板娘 --> <script src="https://cdn.jsdelivr.net/gh/IlysvlVEizbr/Live2D@1.8/kbn.js" defer=""></script> <script> //弹出一个页面层 $('#kaygb-blog').on('click', function() { layer.open({ type: 2, title: 'emptysuns', shadeClose: true, shade: false, maxmin: true, //开启最大化最小化按钮 area: ['80%', '100%'], content: '' }); }); $('#kaygb-mail').on('click', function() { layer.open({ type: 2, title: 'emptysuns', shadeClose: true, shade: false, maxmin: true, //开启最大化最小化按钮 area: ['80%', '100%'], content: '' }); }); </script> <div class="waifu" style="right: 10px;"><div class="waifu-tips" style="width: 182px; height: 62px; top: -13px; font-size: 14px; opacity: 1;">午后很容易犯困呢,今天的运动目标完成了吗?</div><canvas id="live2d" class="live2d" width="360" height="340" style="width: 180px; height: 170px;"></canvas><div class="waifu-tool" style="font-size: 18px;"><span class="fui-chat" style="line-height: 36px;"></span><span class="fui-eye" style="line-height: 36px;"></span><span class="fui-user" style="line-height: 36px;"></span><span class="fui-cross" style="line-height: 36px;"></span></div></div></body></html>
In [17]:
# 没办法选中被注释的元素
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('http://wwwtrojan.iacg.cf')
id = browser.find_element_by_css_selector('.btn.btn-primary.col-lg-4')
print(id)
browser.close()
<selenium.webdriver.remote.webelement.WebElement (session="c06ed7e6f43c8eb1dc89603dbe7201ed", element="61bf0ebb-13e3-4bab-9366-e1a46012dee0")>
In [20]:
# 通用的选择方法
from selenium import webdriver
from selenium.webdriver.common.by import By
browser = webdriver.Chrome()
browser.get('https://www.taobao.com')
id_q = browser.find_element(By.ID, 'q')
print(id_q)
browser.close()
<selenium.webdriver.remote.webelement.WebElement (session="7b2432bd4803e263fe026f2cc37277ac", element="e950cd92-6996-49cb-ac15-c6bb43c0fea5")>
In [24]:
# 选择多个元素
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('http://wwwtrojan.iacg.cf')
id_q = browser.find_elements_by_css_selector(".btn")
print(id_q)
browser.close()
[<selenium.webdriver.remote.webelement.WebElement (session="32cd4853dcc99465b24d6163191cb6e3", element="0515f817-0529-4a9c-af14-a42fb1ab0b9a")>, <selenium.webdriver.remote.webelement.WebElement (session="32cd4853dcc99465b24d6163191cb6e3", element="a11907a5-eadd-41fb-b236-ce5ea3888776")>, <selenium.webdriver.remote.webelement.WebElement (session="32cd4853dcc99465b24d6163191cb6e3", element="45eea91d-deaf-4f07-85f0-bac207ec028a")>]
In [25]:
# 通用选择多个元素
from selenium import webdriver
from selenium.webdriver.common.by import By
browser = webdriver.Chrome()
browser.get('http://wwwtrojan.iacg.cf')
id_q = browser.find_elements(By.CSS_SELECTOR, ".btn")
print(id_q)
browser.close()
[<selenium.webdriver.remote.webelement.WebElement (session="e2028299b5a955a05d7da10fa80c0111", element="f6845340-c750-4e2b-84ac-967803e42399")>, <selenium.webdriver.remote.webelement.WebElement (session="e2028299b5a955a05d7da10fa80c0111", element="666385a9-0e1f-44ae-b2a9-46e102d11bd7")>, <selenium.webdriver.remote.webelement.WebElement (session="e2028299b5a955a05d7da10fa80c0111", element="d1458799-3d2b-4fc3-bfab-132961b8331d")>]
In [34]:
# 元素交互操作
from selenium import webdriver
import time
browser = webdriver.Chrome()
browser.get("https://www.taobao.com/")
search_input = browser.find_element_by_id("q")
search_input.send_keys("emptysuns")
time.sleep(2)
search_input.clear()
search_input.send_keys("我爱你")
search_button = browser.find_element_by_class_name("btn-search")
search_button.click()
In [39]:
# 元素交互动作
from selenium import webdriver
from selenium.webdriver import ActionChains
browser = webdriver.Chrome()
browser.get('https://www.runoob.com/try/try.php?filename=jqueryui-example-droppable')
browser.switch_to.frame("iframeResult")
drag = browser.find_element_by_css_selector("#draggable")
drop = browser.find_element_by_css_selector("#droppable")
Action = ActionChains(browser)
Action.drag_and_drop(drag, drop)
Action.perform()
In [43]:
# 执行js代码
from selenium import webdriver
import time
browser = webdriver.Chrome()
browser.get("https://www.zhihu.com/explore")
browser.execute_script('window.scrollTo(0, document.body.scrollHeight)')
time.sleep(5)
browser.execute_script('alert("this is a bottom")')
In [49]:
# 获取属性信息
from selenium import webdriver
browser = webdriver.Chrome()
browser.get("https://www.google.com")
logo = browser.find_element_by_id('hplogo')
print(logo.get_attribute('title'))
print(type(logo.get_attribute('title')))
browser.close()
<class 'str'>
--------------------------------------------------------------------------- WebDriverException Traceback (most recent call last) <ipython-input-49-8879e7a2451b> in <module> 6 print(logo.get_attribute('title')) 7 print(type(logo.get_attribute('title'))) ----> 8 browser.close() c:\users\administrator\appdata\local\programs\python\python37\lib\site-packages\selenium\webdriver\remote\webdriver.py in close(self) 686 driver.close() 687 """ --> 688 self.execute(Command.CLOSE) 689 690 def quit(self): c:\users\administrator\appdata\local\programs\python\python37\lib\site-packages\selenium\webdriver\remote\webdriver.py in execute(self, driver_command, params) 319 response = self.command_executor.execute(driver_command, params) 320 if response: --> 321 self.error_handler.check_response(response) 322 response['value'] = self._unwrap_value( 323 response.get('value', None)) c:\users\administrator\appdata\local\programs\python\python37\lib\site-packages\selenium\webdriver\remote\errorhandler.py in check_response(self, response) 240 alert_text = value['alert'].get('text') 241 raise exception_class(message, screen, stacktrace, alert_text) --> 242 raise exception_class(message, screen, stacktrace) 243 244 def _value_or_default(self, obj, key, default): WebDriverException: Message: chrome not reachable (Session info: chrome=87.0.4280.88)
In [52]:
# 输出text值
from selenium import webdriver
browser = webdriver.Chrome()
browser.get("https://www.google.com")
hand = browser.find_element_by_css_selector('.Q8LRLc')
print(hand.text)
browser.close()
塞舌尔
In [53]:
# 输出text值
from selenium import webdriver
browser = webdriver.Chrome()
browser.get("https://www.google.com")
hand = browser.find_element_by_css_selector('.Q8LRLc')
print(hand.text)
print(hand.location)
print(hand.size)
print(hand.tag_name)
browser.close()
塞舌尔 {'x': 30, 'y': 859} {'height': 17, 'width': 45} span
In [54]:
# 隐式等待
from selenium import webdriver
browser = webdriver.Chrome()
browser.get("https://www.google.com")
browser.implicitly_wait(10)
hand = browser.find_element_by_css_selector('.Q8LRLc')
print(hand.text)
塞舌尔
In [59]:
# 显式等待
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
browser = webdriver.Chrome()
browser.get("https://www.google.com")
wait = WebDriverWait(browser, 10)
hand = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.Q8LRLc')))
print(hand)
<selenium.webdriver.remote.webelement.WebElement (session="5ba1d09e10dcf9367c7bb59744367db9", element="72535390-ecde-465d-abe7-dd7a253104c4")>
In [61]:
# 网页跳转
from selenium import webdriver
import time
browser = webdriver.Chrome()
browser.get("https://www.google.com")
browser.get("https://www.baidu.com")
browser.get("https://www.zhihu.com")
time.sleep(5)
browser.back()
time.sleep(5)
browser.forward()
time.sleep(5)
browser.close()
In [69]:
# cookies设置
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('http://211.68.191.30/youni/index?verify_request=5d3bbc8f19d1741f8ae19753a9a92f187a4776f785a6ec013255de6077323af4d57b9005395deab818b1f315eb6d692e0fe2a1fe794407d7a867c46400173723aae769d53ab78d5e1eaaf382e9b6f5e9135aa982115d8d05be5b09fbca92f1d64fd931d977bad5e0f9064998953d50bdb66c495630e115a74d4e8eae7a9a1b766e040945fd8f10b340bdbd1a16475b2e81c0b134e78bc4336cf96263782723949ceabce293e5e1afe1fa74b511dbf10ea6325a6a40e0709bf9730f0a100f89b03448fca21a7ad652429d8759e7c46d60686aee50788c3b41b0ed5b8b8b6967c2064a4beb449c21cc0c5182a11d39ed5cd52620b6703733b0ee665eb36829f578&yb_uid=18995722')
print(browser.get_cookies())
browser.add_cookie({'name':'JSESSIONID', 'domain':'211.68.191.30', 'value':'fck u'})
print(browser.get_cookies())
browser.delete_all_cookies()
print(browser.get_cookies())
browser.close()
[{'domain': '211.68.191.30', 'httpOnly': True, 'name': 'JSESSIONID', 'path': '/youni', 'secure': False, 'value': '1E7A606D23BAF7B0A9A4645D7D13D3E9'}] [{'domain': '211.68.191.30', 'httpOnly': False, 'name': 'JSESSIONID', 'path': '/', 'secure': False, 'value': 'fck u'}, {'domain': '211.68.191.30', 'httpOnly': True, 'name': 'JSESSIONID', 'path': '/youni', 'secure': False, 'value': '1E7A606D23BAF7B0A9A4645D7D13D3E9'}] []
In [76]:
# 选项卡管理
from selenium import webdriver
import time
browser = webdriver.Chrome()
browser.get("https://www.google.com")
browser.execute_script('window.open()')
print(browser.window_handles)
browser.switch_to_window(browser.window_handles[0])
browser.get("https://www.baidu.com")
time.sleep(3)
browser.switch_to_window(browser.window_handles[1])
browser.get("https://www.zhihu.com")
time.sleep(5)
browser.close()
time.sleep(5)
browser.switch_to_window(browser.window_handles[0])
browser.close()
['CDwindow-34F19D1A762A045C502B68BCEC4F81AF', 'CDwindow-6A450332D88C3E184C4D46BDC3FE2DFE']
c:\users\administrator\appdata\local\programs\python\python37\lib\site-packages\ipykernel_launcher.py:8: DeprecationWarning: use driver.switch_to.window instead c:\users\administrator\appdata\local\programs\python\python37\lib\site-packages\ipykernel_launcher.py:11: DeprecationWarning: use driver.switch_to.window instead # This is added back by InteractiveShellApp.init_path() c:\users\administrator\appdata\local\programs\python\python37\lib\site-packages\ipykernel_launcher.py:16: DeprecationWarning: use driver.switch_to.window instead app.launch_new_instance()
In [75]:
# 异常管理
from selenium import webdriver
from selenium.common.exceptions import TimeoutException,NoSuchElementException
import time
browser = webdriver.Chrome()
browser.get("https://www.google.com")
try:
hy = browser.find_element_by_id("hello")
except NoSuchElementException:
print("No ....")
time.sleep(10)
finally:
browser.close()
No ....
In [ ]:
Comments 1 条评论
如果对你有帮助,帮我留个言呗
(〜 ̄△ ̄)〜