python - Python Selenium 选择元素几个问题
问题描述
我有两个问题。
- 我正在尝试获取文本值(Medium Coverage,Liquid Formula)但没有定位器。这些文本值与页面不同,但位置相同。有什么办法可以得到这样的文字
find_element_by_class('css_s6sd4y.eanm7710') -> go down to one more row then select the element
- 有一个类名。但我想知道是否有另一种方法可以使用 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)
对于你的第二个问题:-
是的,您可以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
推荐阅读
- javascript - 在 Firebase 中使用 set() 时发生的事件顺序是什么?
- asp.net-core - 首先更新 Mvc 代码中的值对象文件
- node.js - 更新 mongodb 时 JavaScript 堆内存不足
- java - MongoDB:如何使用大数据优化聚合查询
- nightwatch.js - 如何在 Nightwatch.js 中以编程方式运行测试?
- java - 对大型矩阵(即 10,000 x 10,000)执行求逆
- vba - 我不断收到错误 3027,我无法更新数据库。我该如何解决这个错误?
- python - 如何将数据框的值用作列并有选择地将值放入其中?
- javascript - 事件处理程序中的错误:TypeError:加载页面时无法读取未定义的属性“应用”
- r - 即使在活动完成后,shinycssloader 也会继续加载