我正在尝试使用 Selenium (Python) 从网页中选择一个“价格”。网页背后的逻辑是有两种类型的价格——“正常价格”和“销售价格”,它们有不同的 XPath。
我遇到的难题是我能够选择包含“正常价格”和“销售价格”的父元素(即,如果特定产品存在销售价格)。然后我尝试对其应用“尝试”和“除外”,以便如果“销售价格”存在 - 获取该价格,否则 - 获取“正常价格”。但是,我似乎无法强制它只在选定的父元素中查找“销售价格”,而是从页面的开头开始,结果是如果有一个“销售价格”页面 - 它将应用于所有产品。
我已经列出了代码的相关提取器以及下面的 HTML。
prices = self.driver.find_elements_by_xpath('//*[contains(@class,"row item-block checkout-item isc-productContainer")]')
all_prices_list=[]
for i in prices:
try:
sale_price=self.driver.find_element_by_xpath('.//*[contains(@class,"row item-block checkout-item isc-productContainer")]/div[4]/isc-product-price-pdp/span/span/span[1]/span[2]')
all_prices_list.append(sale_price.text)
except:
reg_price=self.driver.find_element_by_xpath('.//*[contains(@class,"row item-block checkout-item isc-productContainer")]/div[4]/isc-product-price-pdp/span/span/span[2]')
all_prices_list.append(reg_price.text)
Run Code Online (Sandbox Code Playgroud)
HTML 代码的相关片段如下。
<span class="sale-price" id="salePrice">
<span class="price-title">Sale</span>
<span class="price-sale" ng-bind="vm.getActualPrice(product)">£0.98</span>
</span>
<span class="regPrice" id="regPrice">
<span class="price-title">Reg:</span>
<span class="price-old" ng-bind="vm.getRegularPrice(product)">£0.99</span>
</span>
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以只在选定的“价格”元素中查找“常规”或“销售价格”?
Eli*_*ahu 26
看起来您正在尝试在父元素中查找sale_price和reg_price,但实际上并未这样做。
因此,请尝试以下操作:
prices = self.driver.find_elements_by_xpath('//*[contains(@class,"row item-block checkout-item isc-productContainer")]')
all_prices_list=[]
for i in prices:
try:
sale_price=i.find_element_by_xpath('.//*[contains(@class,"row item-block checkout-item isc-productContainer")]/div[4]/isc-product-price-pdp/span/span/span[1]/span[2]')
all_prices_list.append(sale_price.text)
except:
reg_price=i.find_element_by_xpath('.//*[contains(@class,"row item-block checkout-item isc-productContainer")]/div[4]/isc-product-price-pdp/span/span/span[2]')
all_prices_list.append(reg_price.text)
Run Code Online (Sandbox Code Playgroud)
此外,您的定位器可以改进
| 归档时间: |
|
| 查看次数: |
1296 次 |
| 最近记录: |