Python Selenium select 元素几个问题

Python Selenium select element a few questions

我有两个问题。

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

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

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

获得中等覆盖率:

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)

关于你的第二个问题:-

是的,您可以在 xpath 中使用 data-at = 'sku_size_label' 或 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