如何使用Python Selenium修改无id/class属性元素的CSS样式调整高度
无id/class属性的元素样式修改方案
方法1:直接在JS中通过属性选择器定位修改
你可以使用CSS属性选择器匹配带有指定style特征的div元素,直接通过JS修改样式,适合页面内该特征元素唯一的场景:
# 完全匹配style属性值 driver.execute_script("document.querySelector('div[style=\"overflow-y:scroll;overflow-x:hidden;height:150px;\"]').style.height = '2000px';") # 模糊匹配(style属性包含指定特征即可,容错率更高) driver.execute_script("document.querySelector('div[style*=\"overflow-y:scroll\"][style*=\"height:150px\"]').style.height = '2000px';")
方法2:先通过Selenium定位再传入JS修改
你也可以先用Selenium的定位语法找到目标元素,再作为参数传给JS执行修改,适合需要结合其他上下文特征(比如父元素位置、同级元素特征)定位的场景:
from selenium.webdriver.common.by import By # 先定位目标元素,xpath可以根据实际情况补充更多特征缩小范围 target_element = driver.find_element(By.XPATH, '//div[contains(@style,"overflow-y:scroll") and contains(@style,"height:150px")]') # 传入元素修改样式 driver.execute_script("arguments[0].style.height = '2000px';", target_element)
补充说明
- 如果页面有多个同特征元素,可将
querySelector替换为querySelectorAll(选择器)[索引]指定对应元素修改,索引从0开始计数 - 匹配style属性时尽量选择独有的特征值,避免误匹配其他元素
内容的提问来源于stack exchange,提问作者debster
相关产品推荐
相关产品推荐

