如何在使用 Python 的 Selenium 中,透過 Javascript 執行器點選連結?
我們可以使用 Selenium 中的 Javascript 執行器來執行點選連結的操作。Javascript 是一種用於指令碼編寫的語言,並在客戶端(瀏覽器上)執行。Selenium 提供了預設的方法來與 Javascript 互動。
語法
javaScript = "document.getElementsByClassName('tp-logo')[0].click();" driver.execute_script(javaScript)
有幾種方法可以在瀏覽器中執行 Javascript:
在文件根級別執行 Javascript。
在此過程中,我們將使用定位器(類或 ID)識別元素,然後對其執行所需的 action。然後呼叫 execute_script() 方法,並將 Javascript 作為字串傳遞給它。
**語法**:
javas = "document.getElementsByName('user-search')[0].click();" driver.execute_script(javas)
請注意,我們使用了 getElementsByName('user-search')[0]。getElementsByName 和 getElementsById 等函式返回匹配元素的陣列。因此,為了定位第一個元素,使用了索引 [0]。但是,如果我們使用 getElementById 函式,則不需要使用索引,因為只引用了一個匹配元素。
最後,為了執行操作,WebDriver 會將 Javascript 語句放入瀏覽器,然後執行必要的 action,例如點選所需的元素。此 Javascript 不會與網頁中存在的 Javascript 混合。
在元素級別執行 Javascript。
在此過程中,我們將藉助 WebDriver 方法(如 find_element_by_xpath 或 find_element_by_id 等)識別元素。然後對其執行必要的 action,例如點選元素。最後,呼叫 execute_script() 方法。此方法將 Javascript 語句和已識別的 Web 元素作為引數。
**語法**:
userN= driver.find_element_by_id("user-search']") driver.execute_script("arguments[0].click();", userN)
示例
使用 Javascript 執行器點選連結的程式碼實現。
from selenium import webdriver #browser exposes an executable file #Through Selenium test we will invoke the executable file which will then #invoke #actual browser driver = webdriver.Chrome(executable_path="C:\chromedriver.exe") # to maximize the browser window driver.maximize_window() #get method to launch the URL driver.get("https://tutorialspoint.tw/about/about_careers.htm") #to refresh the browser driver.refresh() # identifying the link with the help of Javascript executor javaScript = "document.getElementsByClassName('tp-logo')[0].click();" driver.execute_script(javaScript) #to close the browser driver.quit()
廣告