{"id":1055,"date":"2025-12-30T16:48:37","date_gmt":"2025-12-30T08:48:37","guid":{"rendered":"https:\/\/www.52runoob.com\/?p=1055"},"modified":"2025-12-30T16:48:37","modified_gmt":"2025-12-30T08:48:37","slug":"selenium%e5%ae%9e%e6%88%98%e6%8c%87%e5%8d%97","status":"publish","type":"post","link":"https:\/\/www.52runoob.com\/index.php\/2025\/12\/30\/selenium%e5%ae%9e%e6%88%98%e6%8c%87%e5%8d%97\/","title":{"rendered":"selenium\u5b9e\u6218\u6307\u5357"},"content":{"rendered":"\n<p>\u4e0b\u9762\u7ed9\u4f60\u4e00\u4efd**\u300aSelenium \u5b9e\u6218\u6307\u5357\u300b<strong>\uff0c\u4e0d\u662f\u53ea\u8bb2 API\uff0c\u800c\u662f<\/strong>\u4ece\u73af\u5883\u642d\u5efa \u2192 \u6838\u5fc3\u64cd\u4f5c \u2192 \u771f\u5b9e\u573a\u666f \u2192 \u53cd\u722c\u4e0e\u7a33\u5b9a\u6027 \u2192 \u9879\u76ee\u7ea7\u7ed3\u6784**\uff0c\u6309**\u201c\u80fd\u8dd1 + \u80fd\u7528 + \u80fd\u6297\u201d**\u7684\u6807\u51c6\u6765\u5199\uff0c\u7279\u522b\u9002\u5408\u4f60\u8fd9\u79cd\u505a <strong>\u722c\u866b \/ \u81ea\u52a8\u5316 \/ \u5b9e\u6218\u9879\u76ee<\/strong> \u7684\u573a\u666f\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u4e00\u3001Selenium \u662f\u4ec0\u4e48\uff1f\u9002\u5408\u5e72\u4ec0\u4e48\uff1f<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">1\ufe0f\u20e3 Selenium \u7684\u5b9a\u4f4d<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Selenium = \u63a7\u5236\u771f\u5b9e\u6d4f\u89c8\u5668\u7684\u81ea\u52a8\u5316\u5de5\u5177<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p>\u5b83\u80fd\u505a\u7684\u4e8b\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u81ea\u52a8\u6253\u5f00\u7f51\u9875<\/li>\n\n\n\n<li>\u81ea\u52a8\u70b9\u51fb \/ \u8f93\u5165 \/ \u63d0\u4ea4\u8868\u5355<\/li>\n\n\n\n<li>\u6267\u884c JS<\/li>\n\n\n\n<li>\u6a21\u62df\u771f\u5b9e\u7528\u6237\u884c\u4e3a<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">2\ufe0f\u20e3 Selenium vs Requests<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u5bf9\u6bd4<\/th><th>Requests<\/th><th>Selenium<\/th><\/tr><\/thead><tbody><tr><td>JS \u6e32\u67d3<\/td><td>\u274c<\/td><td>\u2705<\/td><\/tr><tr><td>\u6a21\u62df\u70b9\u51fb<\/td><td>\u274c<\/td><td>\u2705<\/td><\/tr><tr><td>\u767b\u5f55\u9a8c\u8bc1\u7801<\/td><td>\u274c<\/td><td>\u90e8\u5206\u53ef<\/td><\/tr><tr><td>\u901f\u5ea6<\/td><td>\u5feb<\/td><td>\u6162<\/td><\/tr><tr><td>\u53cd\u722c\u8bc6\u522b<\/td><td>\u4f4e<\/td><td>\u9ad8<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>\ud83d\udc49 <strong>\u7ed3\u8bba<\/strong>\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>JS \u91cd\u7684\u7f51\u7ad9 \/ \u767b\u5f55\u6d41\u7a0b \/ \u52a8\u6001\u52a0\u8f7d \u2192 Selenium<\/strong><\/li>\n\n\n\n<li><strong>\u63a5\u53e3\u7a33\u5b9a \u2192 Requests<\/strong><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u4e8c\u3001\u73af\u5883\u642d\u5efa\uff08Python \u5b9e\u6218\uff09<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">1\ufe0f\u20e3 \u5b89\u88c5 Selenium<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\npip install selenium\n\n<\/pre><\/div>\n\n\n<p>\ud83d\udc49 \u63a8\u8350 <strong>Selenium 4.x<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2\ufe0f\u20e3 \u5b89\u88c5\u6d4f\u89c8\u5668\u9a71\u52a8\uff08\u91cd\u70b9\uff09<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u2705 Chrome\uff08\u6700\u5e38\u7528\uff09<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Chrome \u2265 115<br>\ud83d\udc49 Selenium 4.10+ <strong>\u5df2\u652f\u6301\u81ea\u52a8\u7ba1\u7406\u9a71\u52a8<\/strong><\/li>\n<\/ul>\n\n\n\n<p><strong>\u65e0\u9700\u624b\u52a8\u4e0b\u8f7d chromedriver<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3\ufe0f\u20e3 \u7b2c\u4e00\u4e2a Selenium \u7a0b\u5e8f<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nfrom selenium import webdriver\n\ndriver = webdriver.Chrome()\ndriver.get(&quot;https:\/\/www.baidu.com&quot;)\n\nprint(driver.title)\n\ndriver.quit()\n\n<\/pre><\/div>\n\n\n<p>\u80fd\u6b63\u5e38\u6253\u5f00\u6d4f\u89c8\u5668 \u2192 \u73af\u5883 OK \u2705<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u4e09\u3001\u6838\u5fc3\u5bf9\u8c61\u4e0e\u7ed3\u6784\uff08\u5fc5\u987b\u61c2\uff09<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">1\ufe0f\u20e3 WebDriver<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6d4f\u89c8\u5668\u63a7\u5236\u5668<\/li>\n\n\n\n<li>\u8d1f\u8d23\uff1a\u6253\u5f00\u7f51\u9875\u3001\u524d\u8fdb\u3001\u540e\u9000\u3001\u5173\u95ed<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ndriver.get(url)\ndriver.back()\ndriver.refresh()\ndriver.quit()\n\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2\ufe0f\u20e3 WebElement<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u9875\u9762\u4e0a\u7684\u4e00\u4e2a\u5143\u7d20<\/li>\n\n\n\n<li>\u53ef\u4ee5\uff1a\n<ul class=\"wp-block-list\">\n<li>\u70b9\u51fb<\/li>\n\n\n\n<li>\u8f93\u5165<\/li>\n\n\n\n<li>\u8bfb\u53d6\u6587\u672c \/ \u5c5e\u6027<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u56db\u3001\u5143\u7d20\u5b9a\u4f4d\uff0880% \u7684\u95ee\u9898\u5728\u8fd9\u91cc\uff09<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">1\ufe0f\u20e3 \u516b\u79cd\u5b9a\u4f4d\u65b9\u5f0f\uff08\u91cd\u70b9\uff09<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nfrom selenium.webdriver.common.by import By\n\n<\/pre><\/div>\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u65b9\u5f0f<\/th><th>\u793a\u4f8b<\/th><\/tr><\/thead><tbody><tr><td>ID<\/td><td>By.ID<\/td><\/tr><tr><td>NAME<\/td><td>By.NAME<\/td><\/tr><tr><td>CLASS<\/td><td>By.CLASS_NAME<\/td><\/tr><tr><td>TAG<\/td><td>By.TAG_NAME<\/td><\/tr><tr><td>LINK<\/td><td>By.LINK_TEXT<\/td><\/tr><tr><td>CSS<\/td><td>By.CSS_SELECTOR<\/td><\/tr><tr><td>XPATH<\/td><td>By.XPATH<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2\ufe0f\u20e3 \u63a8\u8350\u4f18\u5148\u7ea7\uff08\u5b9e\u6218\u7ecf\u9a8c\uff09<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>ID &gt; CSS &gt; XPath &gt; \u5176\u4ed6<\/strong><\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">CSS \u793a\u4f8b<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ndriver.find_element(By.CSS_SELECTOR, &quot;#kw&quot;)\n\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">XPath \u793a\u4f8b<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ndriver.find_element(By.XPATH, &quot;\/\/input&#x5B;@id=&#039;kw&#039;]&quot;)\n\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3\ufe0f\u20e3 XPath \u5b9e\u6218\u5199\u6cd5\uff08\u5fc5\u4f1a\uff09<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n\/\/div&#x5B;@class=&#039;item&#039;]\n\/\/a&#x5B;contains(text(),&#039;\u767b\u5f55&#039;)]\n\/\/input&#x5B;starts-with(@id,&#039;user&#039;)]\n\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u4e94\u3001\u5e38\u89c1\u64cd\u4f5c\u5927\u5168<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">1\ufe0f\u20e3 \u8f93\u5165 &amp; \u70b9\u51fb<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nel = driver.find_element(By.ID, &quot;kw&quot;)\nel.send_keys(&quot;selenium&quot;)\nel.clear()\n\ndriver.find_element(By.ID, &quot;su&quot;).click()\n\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2\ufe0f\u20e3 \u83b7\u53d6\u4fe1\u606f<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nel.text\nel.get_attribute(&quot;href&quot;)\n\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3\ufe0f\u20e3 \u4e0b\u62c9 &amp; \u6eda\u52a8<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ndriver.execute_script(&quot;window.scrollTo(0, document.body.scrollHeight)&quot;)\n\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4\ufe0f\u20e3 iframe \u5207\u6362\uff08\u9ad8\u9891\u5751\uff09<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ndriver.switch_to.frame(&quot;iframe_id&quot;)\ndriver.switch_to.default_content()\n\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">5\ufe0f\u20e3 \u65b0\u7a97\u53e3 \/ \u6807\u7b7e\u9875<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nhandles = driver.window_handles\ndriver.switch_to.window(handles&#x5B;-1])\n\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u516d\u3001\u7b49\u5f85\u673a\u5236\uff08\u7a33\u5b9a\u6027\u7684\u6838\u5fc3\uff09<\/h1>\n\n\n\n<p>\u274c \u7981\u6b62\u5927\u91cf\u4f7f\u7528 <code>time.sleep()<\/code><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">1\ufe0f\u20e3 \u9690\u5f0f\u7b49\u5f85\uff08\u5168\u5c40\uff09<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ndriver.implicitly_wait(10)\n\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2\ufe0f\u20e3 \u663e\u5f0f\u7b49\u5f85\uff08\u63a8\u8350\uff09<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nfrom selenium.webdriver.support.ui import WebDriverWait\nfrom selenium.webdriver.support import expected_conditions as EC\n\nWebDriverWait(driver, 10).until(\n    EC.presence_of_element_located((By.ID, &quot;kw&quot;))\n)\n\n<\/pre><\/div>\n\n\n<p>\ud83d\udc49 <strong>\u5b9e\u6218\u9996\u9009<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u4e03\u3001\u5b9e\u6218\u6848\u4f8b 1\uff1a\u81ea\u52a8\u641c\u7d22\u5e76\u6293\u53d6\u7ed3\u679c<\/h1>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nfrom selenium import webdriver\nfrom selenium.webdriver.common.by import By\nfrom selenium.webdriver.common.keys import Keys\n\ndriver = webdriver.Chrome()\ndriver.get(&quot;https:\/\/www.baidu.com&quot;)\n\nkw = driver.find_element(By.ID, &quot;kw&quot;)\nkw.send_keys(&quot;Python Selenium&quot;)\nkw.send_keys(Keys.ENTER)\n\ntitles = driver.find_elements(By.CSS_SELECTOR, &quot;h3&quot;)\n\nfor t in titles:\n    print(t.text)\n\ndriver.quit()\n\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u516b\u3001\u53cd\u722c &amp; \u7a33\u5b9a\u6027\u6280\u5de7\uff08\u975e\u5e38\u91cd\u8981\uff09<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">1\ufe0f\u20e3 \u5e38\u89c1 Selenium \u88ab\u8bc6\u522b\u70b9<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>navigator.webdriver = true<\/code><\/li>\n\n\n\n<li>\u65e0\u5934\u6a21\u5f0f<\/li>\n\n\n\n<li>\u64cd\u4f5c\u901f\u5ea6\u56fa\u5b9a<\/li>\n\n\n\n<li>UA \u5f02\u5e38<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2\ufe0f\u20e3 \u9690\u85cf webdriver\uff08\u57fa\u7840\uff09<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\noptions = webdriver.ChromeOptions()\noptions.add_argument(&quot;--disable-blink-features=AutomationControlled&quot;)\n\ndriver = webdriver.Chrome(options=options)\ndriver.execute_script(\n    &quot;Object.defineProperty(navigator, &#039;webdriver&#039;, {get: () =&gt; undefined})&quot;\n)\n\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3\ufe0f\u20e3 \u4eba\u7c7b\u884c\u4e3a\u6a21\u62df<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nimport random, time\n\ntime.sleep(random.uniform(1, 3))\n\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4\ufe0f\u20e3 Headless\uff08\u614e\u7528\uff09<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\noptions.add_argument(&quot;--headless=new&quot;)\n\n<\/pre><\/div>\n\n\n<p>\ud83d\udc49 <strong>\u722c\u866b\u4e0d\u63a8\u8350\uff0c\u5bb9\u6613\u88ab\u5c01<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u4e5d\u3001\u9879\u76ee\u7ea7 Selenium \u7ed3\u6784\uff08\u63a8\u8350\uff09<\/h1>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nselenium_project\/\n\u2502\n\u251c\u2500\u2500 driver\/\n\u2502   \u2514\u2500\u2500 browser.py\n\u251c\u2500\u2500 pages\/\n\u2502   \u2514\u2500\u2500 login_page.py\n\u251c\u2500\u2500 utils\/\n\u2502   \u251c\u2500\u2500 wait.py\n\u2502   \u2514\u2500\u2500 logger.py\n\u251c\u2500\u2500 main.py\n\n<\/pre><\/div>\n\n\n<p>\ud83d\udc49 <strong>Page Object \u6a21\u5f0f\uff08POM\uff09<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u5341\u3001Selenium \u5e38\u89c1\u5f02\u5e38\u901f\u67e5<\/h1>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u5f02\u5e38<\/th><th>\u539f\u56e0<\/th><\/tr><\/thead><tbody><tr><td>NoSuchElement<\/td><td>\u5b9a\u4f4d\u9519\u8bef<\/td><\/tr><tr><td>TimeoutException<\/td><td>\u7b49\u5f85\u4e0d\u8db3<\/td><\/tr><tr><td>StaleElement<\/td><td>\u9875\u9762\u5237\u65b0<\/td><\/tr><tr><td>ElementNotInteractable<\/td><td>\u5143\u7d20\u4e0d\u53ef\u70b9\u51fb<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u5341\u4e00\u3001Selenium + Requests \u6df7\u5408\u6a21\u5f0f\uff08\u9ad8\u7ea7\uff09<\/h1>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>\u7528 Selenium \u767b\u5f55 \u2192 \u62ff Cookie \u2192 Requests \u8dd1\u63a5\u53e3<\/strong><\/p>\n<\/blockquote>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ncookies = driver.get_cookies()\n\n<\/pre><\/div>\n\n\n<p>\u6548\u7387\u76f4\u63a5\u8d77\u98de \ud83d\ude80<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u5341\u4e8c\u3001\u4ec0\u4e48\u65f6\u5019\u8be5\u201c\u653e\u5f03 Selenium\u201d\uff1f<\/h1>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u9875\u9762\u63a5\u53e3\u53ef\u76f4\u63a5\u6293<\/li>\n\n\n\n<li>\u7f51\u7ad9\u5f3a\u53cd\u81ea\u52a8\u5316<\/li>\n\n\n\n<li>\u5bf9\u6027\u80fd\u8981\u6c42\u6781\u9ad8<\/li>\n<\/ul>\n\n\n\n<p>\ud83d\udc49 \u6539\u7528\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Playwright<\/li>\n\n\n\n<li>\u6293\u63a5\u53e3 + \u6a21\u62df\u7b7e\u540d<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u6700\u540e\u4e00\u53e5\u603b\u7ed3<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Selenium \u662f\u201c\u6700\u540e\u7684\u6b66\u5668\u201d\uff0c\u4e0d\u662f\u7b2c\u4e00\u9009\u62e9\uff0c\u4f46\u4e00\u65e6\u7528\u4e0a\uff0c\u5fc5\u987b\u7528\u5bf9\u3002<\/strong><\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>\u4e0b\u9762\u7ed9\u4f60\u4e00\u4efd**\u300aSelenium \u5b9e\u6218\u6307\u5357\u300b\uff0c\u4e0d\u662f\u53ea\u8bb2 API\uff0c\u800c\u662f\u4ece\u73af\u5883\u642d\u5efa&#8230; <a class=\"more-link\" href=\"https:\/\/www.52runoob.com\/index.php\/2025\/12\/30\/selenium%e5%ae%9e%e6%88%98%e6%8c%87%e5%8d%97\/\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[],"class_list":["post-1055","post","type-post","status-publish","format-standard","hentry","category-12"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/posts\/1055","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/comments?post=1055"}],"version-history":[{"count":1,"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/posts\/1055\/revisions"}],"predecessor-version":[{"id":1056,"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/posts\/1055\/revisions\/1056"}],"wp:attachment":[{"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/media?parent=1055"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/categories?post=1055"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/tags?post=1055"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}