Anj*_*ali 3 python selenium xpath css-selectors value-of-css-property
使用 python 如何使用 selenium 获取背景图像?哪个有内联 CSS?我想从背景图片中获取图片网址: url()
<div id="pic" class="pic" data-type="image" style=" background-image: url(http://test.com/images/image.png;); height: 306px; background-size: cover;"></div>
Run Code Online (Sandbox Code Playgroud)
为了让您需要使用背景图像value_of_css_property(property_name)
的方法,你必须诱导WebDriverWait的visibility_of_element_located()
,你可以使用以下的定位策略:
使用CSS_SELECTOR
:
import re
my_property = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.pic#pic[data-type='image']"))).value_of_css_property("background-image")
print(re.split('[()]',my_property)[1])
Run Code Online (Sandbox Code Playgroud)使用XPATH
:
import re
my_property = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='pic' and @id='pic'][@data-type='image']"))).value_of_css_property("background-image")
print(re.split('[()]',my_property)[1])
Run Code Online (Sandbox Code Playgroud)控制台输出:
test.com/images/image.png
Run Code Online (Sandbox Code Playgroud)由于 url 用双引号括起来,即"..."
您可以使用以下解决方案:
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='pic' and @id='pic'][@data-type='image']"))).value_of_css_property("background-image").split('"')[1])
Run Code Online (Sandbox Code Playgroud)
您可以找到与以下内容相关的几个相关讨论:
归档时间: |
|
查看次数: |
1657 次 |
最近记录: |