Selenium高亮顯示定位到的元素


在調試Selenium腳本中,有時因為操作太快或操作不明顯而不清楚是否定位到了正確的元素。我們可用通過執行js為定位到的元素添加樣式,來高亮顯示定位到的元素。

在Selenim Webdriver中,可以通過driver.exectue_scirpt() 執行JavaScript代碼,執行的JavaScript代碼是支持傳入參數的,甚至可以傳入定位到的元素,如:
exectue_script('js腳本', 參數1,參數2,參數3...),在JavaScript腳本字符串中使用arguments[n]來表示匹配第幾個參數。

示例代碼如下:

from selenium import webdriver
from time import sleep

STYLE = "background: green; border: 2px solid red;"  # 高亮的樣式

def find(driver, by, expr):
    element = driver.find_element(by, expr)
    driver.execute_script("arguments[0].setAttribute('style', arguments[1]);",element, STYLE)  
    return element

driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')

find(driver, 'id', 'kw').send_keys("博客園 韓志超")
find(driver, 'id', 'su').click()

sleep(3)
driver.quit()

以上代碼中,
by只定位方式,支持'id','xpath', 'name', 'class name', 'link text', 'partial link text', 'css selector', expr為元素對應的定位表達式。
driver.execute_script("arguments[0].setAttribute('style', arguments[1]);",element, STYLE)
將定位到的元素替換到arguments[0], 樣式STYLE替換arguments[1],及為該元素添加高亮楊樣式。

執行完結果如下圖:
Selenium高亮顯示定位到的元素


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM