Selenium 如何仅从 class 内的 <b> 标签获取文本
Selenium how to get text only from <b> tag inside class
我正在尝试使用 python 和 selenium 将网站上的所有产品价格添加到列表中,但是当价格打折时我遇到了问题并且在网站上看起来像这样:
HTML 此站点的代码:
<span class="product-price promo-price">
<b>
79,00
::after
</b>
<del>
89,00
::after
</del>
</span>
我将价格放入列表的 selenium 代码:
def test5():
sort = driver.find_element(By.CSS_SELECTOR, ".sorter-button").click()
sort2 = driver.find_element(By.CSS_SELECTOR, ".sorter-listing > span:nth-child(3) > label:nth-child(2)").click()
prices = driver.find_elements(By.CLASS_NAME, "product-price ")
a = []
for i in prices:
a.append(i.text)
print(a)
这段代码的输出是:
['19,90', '50,00', '78,99', '79,00\n89,00', '95,00\n128,00', '135,00', '137,95', '149,00\n158,00', '191,00', '199,00', '199,99\n267,50', '200,00\n300,00']
问题是同时获取折扣值和正常值,例如 - 79,00\n89,00
我怎样才能只获得折扣价,所以列表会像这样:
['19,90', '50,00', '78,99', '79,00', '95,00', '135,00', '137,95', '149,00', '191,00', '199,00', '199,99', '200,00']
如果我这样做,例如 XPATH
,那么我只能从网站上获得一个价格,而不是全部。
a.append(i.text.splitlines[1])
我正在尝试使用 python 和 selenium 将网站上的所有产品价格添加到列表中,但是当价格打折时我遇到了问题并且在网站上看起来像这样:
HTML 此站点的代码:
<span class="product-price promo-price">
<b>
79,00
::after
</b>
<del>
89,00
::after
</del>
</span>
我将价格放入列表的 selenium 代码:
def test5():
sort = driver.find_element(By.CSS_SELECTOR, ".sorter-button").click()
sort2 = driver.find_element(By.CSS_SELECTOR, ".sorter-listing > span:nth-child(3) > label:nth-child(2)").click()
prices = driver.find_elements(By.CLASS_NAME, "product-price ")
a = []
for i in prices:
a.append(i.text)
print(a)
这段代码的输出是:
['19,90', '50,00', '78,99', '79,00\n89,00', '95,00\n128,00', '135,00', '137,95', '149,00\n158,00', '191,00', '199,00', '199,99\n267,50', '200,00\n300,00']
问题是同时获取折扣值和正常值,例如 - 79,00\n89,00
我怎样才能只获得折扣价,所以列表会像这样:
['19,90', '50,00', '78,99', '79,00', '95,00', '135,00', '137,95', '149,00', '191,00', '199,00', '199,99', '200,00']
如果我这样做,例如 XPATH
,那么我只能从网站上获得一个价格,而不是全部。
a.append(i.text.splitlines[1])