基本上,我试图在链接到通用xpath时缩短xpath,但不幸的是,我只得到第一个产品的文本,而不是多个产品标题。
我从页面中获取所有产品,使用:
products = driver.find_elements(By.XPATH, '//div[@class="card h-100"]')
如下图所示,我使用//h4/a
来识别标题:Browser Xpath results
在我为每个产品编写的自动化脚本中,我通过跳过一个父元素并获取文本来链接'//h4/a',但不幸的是,我只获得了第一个元素,如下图所示:Automation by shortening xpath
for product in products:
card_text = product.find_element(By.XPATH, '//h4/a').text
if card_text == 'Blackberry':
card.find_element(By.XPATH, 'div/button').click()
break
但是使用所有父/子遍历xpath div/h4/a
,它可以正常工作,我得到的结果和预期的一样,如下图所示。Automation script with long parent child xpath
我想知道如何在链接过程中缩短xpath。
1条答案
按热度按时间yhived7q1#
首先在代码中调用card.find_element,但是我们看不到这个参数。
我想你是这个意思:
最好的链接方式是这样的,只需在元素xpaths之间放置一个空格:
'element1 element2..'
因此,您可以将xpath更改为:
或者为了检查一行中的文本: