code:
# -*- coding: utf-8 -*-
"""
Created on Tue May 9 20:41:07 2023
@author: SavingKing
"""
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import sys
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
options = Options()
options.add_argument("--disable-notifications")
# driverpath = r"P:\Python\selenium\chromedriver_win32\chromedriver.exe"
# service = Service(driverpath)
# chrome = webdriver.Chrome(service=service)
chrome = webdriver.Chrome( options=options)
#selenium.webdriver.chrome.webdriver.WebDriver
# chrome = webdriver.Chrome("./chromedriver_win32",
# chrome_options=options)
chrome.get("http://www.python.org")
elem = chrome.find_element(By.ID, "id-search-field")
#elem = chrome.find_element("id", "id-search-field") #也可
"""
By.ID
Out[36]: 'id'
"""
elem.clear()
elem.send_keys("SavingKing")
elem.send_keys(Keys.RETURN)
"""
Keys.RETURN
Out[39]: '\ue006'
"""
code:
執行程式後,
自動打開Chrome瀏覽器
連線 http://www.python.org
且輸入SavingKing搜尋
Chrome瀏覽器中
按F12 (NB有可能是按 Fn + F12)
或者 Ctrl + Shift + I
檢視網頁原始碼:
放大:
<input id="id-search-field" name="q" type="search" role="textbox" class="search-field" placeholder="Search" value="SavingKing" tabindex="1">
這是一個HTML元素的代碼,它描述了一個具有不同屬性的<input>
元素。以下是對這些屬性的解釋:
id="id-search-field"
:這是元素的唯一識別符,稱為ID。通過ID,您可以在HTML文檔中獨特地識別和訪問這個元素。name="q"
:這是元素的名稱,通常用於表單提交時識別元素。在這種情況下,當表單被提交時,這個元素的值將使用名稱”q”傳遞。type="search"
:這指定了輸入框的類型,即搜索框。role="textbox"
:這是指元素的角色,表示這個元素是一個文本框,用戶可以在其中輸入文本。class="search-field"
:這個元素的CSS類名,可以用於定義元素的外觀和風格。placeholder="Search"
:這是一個占位符屬性,用於在輸入框中提供簡短的說明性文字,當用戶未輸入文本時顯示。value="SavingKing"
:這是輸入框的初始值,當網頁加載時,它將包含”SavingKing”這個文本。tabindex="1"
:這是定義用戶在使用鍵盤時可以通過Tab鍵切換到這個元素的順序。
總之,這個<input>
元素是一個搜索框,具有多個不同的HTML屬性,這些屬性提供了關於元素的信息,並影響了它的行為和外觀。
elem = chrome.find_element(By.ID,"id-search-field")
這行代碼是在已經打開的 Chrome 瀏覽器中尋找具有特定 ID 屬性的 HTML 元素,並將該元素存儲在變數 elem
中。
這裡的詳細解釋如下:
chrome
:這是您創建的 Chrome 瀏覽器物件,通過它,您可以對瀏覽器進行控制和操作。find_element
:這是 Selenium 提供的方法之一,用於查找網頁上的元素。在這個情況下,您希望查找一個元素,該元素擁有特定的屬性。By.ID
:這是一個 Selenium 提供的方法,指定您要根據元素的 ID 屬性來查找元素。"id-search-field"
:這是您要查找的元素的 ID 屬性的值。在這個特定情況下,您正在尋找 ID 為 “id-search-field” 的元素。
總之,elem = chrome.find_element(By.ID, "id-search-field")
的目的是在已經打開的 Chrome 瀏覽器中查找具有 ID 屬性為 “id-search-field” 的 HTML 元素,並將這個元素存儲在變數 elem
中,以便之後對它執行操作,比如清空輸入框或者輸入文本。
在Python的命名慣例中,全大寫通常用於表示常數或常數值。這種風格稱為「大寫和底線」(UPPERCASE_WITH_UNDERSCORES),並且主要用於定義全局變量,通常是不可變的。
例如,By.ID
中的 ID
是一個常數,表示一種定位元素的方法,通常不會在代碼中改變其值。這樣的常數通常使用大寫字母和底線來命名,以使它們在代碼中易於識別。
因此,使用全大寫字母來表示常數值是一種Python慣例,有助於提高代碼的可讀性和理解性。
首字大写的慣例在Python中通常用於表示類(Class)名或型別(Type)名。這種風格稱為「大駝峰命名法」(CamelCase),其中單詞的首字母都使用大寫字母,並且單詞之間不使用底線。
以下是首字大写慣例的一些示例:
- 類名(Class Name):在定義Python類時,慣例是使用首字大写的名稱,例如:
class MyClass:
#類的定義 - 函數名(Function Name):函數名通常使用小寫字母,但如果函數名由多個單詞組成,則第二個單詞以後首字母大寫,例如:
def myFunction():
#函數的實現 - 變數名(Variable Name):變數名通常使用小寫字母,但如果變數名由多個單詞組成,則第二個單詞以後首字母大寫,例如:
myVariable = 42
推薦hahow線上學習python: https://igrape.net/30afN