gpt4 book ai didi

python - 循环 Selenium WebElement

转载 作者:行者123 更新时间:2023-12-01 01:27:47 25 4
gpt4 key购买 nike

我没有从以下迭代中获得预期结果。问题是 browser.find_element_by_xpath 函数中的迭代值未更新(下面代码的第 4 行)。它总是产生第一个结果。请注意,当我通过将值 1,2,3,4 依次分配给变量 review_num 而不是使用参数 + str(review_num) 来手动运行迭代时,我得到了预期的结果

    review_num = 0
for review_num in range(216): # for every review
review_num = review_num + 1
fixedelement = browser.find_element_by_xpath('//*[@id="collapseReviews"]/div/div[2]/div[2]/div[1]/div["+ str(review_num)"]')
#fixedelement = browser.find_element_by_xpath('//*[@id="collapseReviews"]/div/div[2]/div[2]/div[1]/div[1]')
#fixedelement = browser.find_element_by_xpath('//*[@id="collapseReviews"]/div/div[2]/div[2]/div[1]/div[2]')
#fixedelement = browser.find_element_by_xpath('//*[@id="collapseReviews"]/div/div[2]/div[2]/div[1]/div[3]')
#fixedelement = browser.find_element_by_xpath('//*[@id="collapseReviews"]/div/div[2]/div[2]/div[1]/div[4]')
R_title = fixedelement.find_element_by_xpath('./h4')
R_author = fixedelement.find_element_by_xpath('./div[2]/p[1]/span')
R_stars = fixedelement.find_element_by_xpath('./div[1]/div[1]/div[1]/span')
R_date = fixedelement.find_element_by_xpath('./div[1]/div[1]/div[2]/small')
R_comment = fixedelement.find_element_by_xpath('./div[1]/div[3]')
R_Yesvotes = fixedelement.find_element_by_xpath('./div[2]/div/div[1]/a[1]/span')
R_Novotes = fixedelement.find_element_by_xpath('./div[2]/div/div[1]/a[2]/span')

R_title_text = R_title.text
R_author_text = R_author.text
R_stars_text = R_stars.text
R_date_text = R_date.text
R_comment_text = R_comment.text
R_Yesvotes_text = R_Yesvotes.text
R_Novotes_text = R_Novotes.text
print(R_author_text)
with open(csvfile, "a", newline='', encoding='utf-8') as output:
writer = csv.writer(output, dialect='excel')
# writer.writerow(["namerow_id", "Name", "Position_Location"])
writer.writerow([review_num, R_title_text, R_author_text, R_stars_text, R_date_text, R_comment_text, R_Yesvotes_text, R_Novotes_text])

最佳答案

在行

fixedelement = browser.find_element_by_xpath('//*[@id="collapseReviews"]/div/div[2]/div[2]/div[1]/div["+ str(review_num)"]')

您正在搜索 xpath 等于的元素

'//*[@id="collapseReviews"]/div/div[2]/div[2]/div[1]/div["+ str(review_num)"]'

“str(review_num)”硬编码到xpath中。

你想做类似的事情

xpath = '//*[@id="collapseReviews"]/div/div[2]/div[2]/div[1]/div[{}]'.format(review_num)
fixedelement = browser.find_element_by_xpath(xpath)

关于python - 循环 Selenium WebElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53197941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com