首页 > 解决方案 > Python Selenium 选择元素几个问题

问题描述

我有两个问题。

  1. 我正在尝试获取文本值(Medium Coverage,Liquid Formula)但没有定位器。这些文本值与页面不同,但位置相同。有什么办法可以得到这样的文字
find_element_by_class('css_s6sd4y.eanm7710') -> go down to one more row then select the element

在此处输入图像描述

  1. 有一个类名。但我想知道是否有另一种方法可以使用 data-at = 'sku_size_label' 找到元素。什么是'data-at'定位器?

在此处输入图像描述

标签: pythonseleniumelement

解决方案


对于第一个问题,您可以使用以下代码:

获得中等覆盖率:

wait = WebDriverWait(driver, 10)
ele = wait.until(EC.visibility_of_element_located((By.XPATH, "//img[@alt='Medium Coverage']/.."))).text
print(ele)

或者

wait = WebDriverWait(driver, 10)
ele = wait.until(EC.visibility_of_element_located((By.XPATH, "//img[@alt='Medium Coverage']/.."))).get_attribute('innerHTML')
print(ele)

获得液体配方:

wait = WebDriverWait(driver, 10)
ele = wait.until(EC.visibility_of_element_located((By.XPATH, "//img[@alt='Liquid Formula']/.."))).text
print(ele)

或者

 wait = WebDriverWait(driver, 10)
 ele = wait.until(EC.visibility_of_element_located((By.XPATH, "//img[@alt='Liquid Formula']/.."))).get_attribute('innerHTML')
 print(ele)

对于你的第二个问题:-

是的,您可以data-at = 'sku_size_label'在 xpath 或 css 中使用:

下面的Xpath:

//span[contains(@data-at, 'sku_size_label')]

下面的CSS:

span[data-at = 'sku_size_label']

对于这个问题:

什么是'data-at' locator called?- 它们不称为定位器,它们基本上是相应标签的属性。

进口:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

推荐阅读