1

有一个包含 10 条评论的列表。每条评论都有一个标题。标题有一个 xpath,评论有另一个。

我想检查列表中是否存在标题“每周报告”,然后从相应的评论中获取文本,例如标题 1 对应于评论 1,标题 2 对应于评论 2,依此类推。我该如何编码?我被困住了。我可以成功地检查列表是否包含带有每周报告的标题,但不知道如何使用它来获取相应的评论。请帮忙。

xpathCommentTitleList = [xpathCommentTitle1, xpathCommentTitle2, xpathCommentTitle3, xpathCommentTitle4, xpathCommentTitle5, xpathCommentTitle6, xpathCommentTitle7, xpathCommentTitle8, xpathCommentTitle9, xpathCommentTitle10]
xpathCommentList = [xpathComment1, xpathComment2, xpathComment3, xpathComment4, xpathComment5, xpathComment6, xpathComment7, xpathComment8, xpathComment9, xpathComment10]
        
    patternForFindingWeekTitle = r"Weekly Report"
    
    for xpath in xpathCommentTitleList: # loop through elements
        element = WebDriverWait(driver, 40).until(EC.presence_of_all_elements_located((By.XPATH, xpath)))
        element = driver.find_element_by_xpath(xpath)
        match2 = re.search(patternForFindingWeekTitle, element.text) 
        if match2:
            break
        else :
            print("Could not find any week title")
4

1 回答 1

0

您可以按以下方式进行操作:
页面加载完成后,获取所有评论标题和评论正文。
假设评论标题定位器是comment_title,评论正文定位器是comment body

titles = driver.find_elements_by_xpath(comment_title)
comments = driver.find_elements_by_xpath(comment_body)
for index, title in enumerate(titles, start=1):
    title_text = title.text
    if('Weekly Report' in title_text):
        return comments[index].text
    
于 2021-05-27T13:46:25.290 回答