文自体を純粋に読むと
「「webdriverという名前を束縛しているオブジェクト」の属性Chrome」は呼び出し可能オブジェクトのはずだから、引数optionsに「optionsという名前を束縛しているオブジェクト」を指定して呼び出している
となります。
python
1from selenium import webdriver
インポートはこんな感じで行うと思いますが、これの意味は
(どこかに)seleniumというモジュールがあるはずだからまずそれをロードして。seleniumというモジュールにwebdriverというグローバル変数が定義されているはずだから、それを評価してでてくる値をここ(import文が書いてあるところ)でwebdriverという名前に束縛して
ということになります。
"selenium.webdriver"が指すオブジェクトを、グローバル変数driverが指すということです。
selenium.webdriverは実体はモジュールでありパッケージです。
その上でwebdriver.ChromeはなにかというとSeleniumのソースを見にいくことになります。
https://github.com/SeleniumHQ/selenium/blob/selenium-3.150.0/py/selenium/webdriver/init.py#L21
python
1from .chrome.webdriver import WebDriver as Chrome
と定義されているので、
selenium.webdriver.chrome.webdriverというモジュールがあるはずだからまずそれをロードして。selenium.webdriver.chrome.webdriverというモジュールにWebDriverというグローバル変数が定義されているはずだから、それを評価してでてくる値をここ(import文が書いてあるところ)でChromeという名前に束縛して
という意味です。
で、selenium.webdriver.chrome.webdriver.WebDriverはじっさいclass文で定義されたクラスです。 > ソース
このimport文が実行されると、selenium.webdriverモジュールのグローバル変数Chromeがselenium.webdriver.chrome.webdriver.WebDriverを指すことになります。
以上から、selenium.webdriver.Chrome で出てくる値は、実際はselenium.webdriver.chrome.webdriver.WebDriver というクラスになります。
「クラスの名前」と「クラスを指す名前」は必ずしも一致しないということを頭の片隅に置いておくのがいいと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/10 01:27