如何在for循环中的xpath中插入变量?

2024-04-25 11:25:29 发布

您现在位置:Python中文网/ 问答频道 /正文

for i in range(length):
        # print(i)
        driver.execute_script("window.history.go(-1)")
        range = driver.find_element_by_xpath("(//a[@class = 'button'])[i]").click()


        content2 = driver.page_source.encode('utf-8').strip()
        soup2 = BeautifulSoup(content2,"html.parser")
        name2 = soup2.find('h1', {'data-qa-target': 'ProviderDisplayName'}).text
        phone2 = soup2.find('a', {'class': 'click-to-call-button-secondary hg-track mobile-click-to-call'}).text
        print(name2, phone2)

嘿,伙计,我正在努力为这个网站上的每个人刮取名字和姓氏、电话:https://www.healthgrades.com/family-marriage-counseling-directory。我希望(l.4)按钮适应变量(I)。如果我手动将i改为一个数字,一切都会正常工作。但是,一旦我把它放在变量中,它就不起作用了,非常感谢任何帮助


1条回答
网友
1楼 · 发布于 2024-04-25 11:25:29

与此相反:

range = driver.find_element_by_xpath("(//a[@class = 'button'])[i]").click()

这样做:

range = driver.find_element_by_xpath(f"(//a[@class = 'button'])[{i}]").click()

更新1:

driver = webdriver.Chrome(driver_path)
driver.maximize_window()
driver.implicitly_wait(50)
driver.get("https://www.healthgrades.com/family-marriage-counseling-directory")

for name in driver.find_elements(By.CSS_SELECTOR, "a[data-qa-target='provider-details-provider-name']"):
  print(name.text)

输出:

Noe Gutierrez, MSW
Melissa Huston, LCSW
Gina Kane, LMHC
Dr. Mary Marino, PHD
Emili-Erin Puente, MED
Richard Vogel, LMFT
Lynn Bednarz, LCPC
Nicole Palow, LMHC
Dennis Hart, LPCC
Dr. Robert Meeks, PHD
Jody Davis
Dr. Kim Logan, PHD
Artemis Paschalis, LMHC
Mark Webb, LMFT
Deirdre Holland, LCSW-R
John Paul Dilorenzo, LMHC
Joseph Hayes, LPC
Dr. Maylin Batista, PHD
Ella Gray, LCPC
Cynthia Mack-Ernsdorff, MA
Dr. Edward Muldrow, PHD
Rachel Sievers, LMFT
Dr. Lisa Burton, PHD
Ami Owen, LMFT
Sharon Lorber, LCSW
Heather Rowley, LCMHC
Dr. Bonnie Bryant, PHD
Marilyn Pearlman, LCSW
Charles Washam, BCD
Dr. Liliana Wolf, PHD
Christy Kobe, LCSW
Dana Paine, LPCC
Scott Kohner, LCSW
Elizabeth Krzewski, LMHC
Luisa Contreras, LMFT
Dr. Joel Nunez, PHD
Susanne Sacco, LISW
Lauren Reminger, MA
Thomas Recher, AUD
Kristi Smith, LCSW
Kecia West, LPC
Gregory Douglas, MED
Gina Smith, LCPC
Anne Causey, LPC
Dr. David Greenfield, PHD
Olga Rothschild, LMHC
Dr. Susan Levin, PHD
Ferguson Jennifer, LMHC
Marci Ober, LMFT
Christopher Checke, LMHC

Process finished with exit code 0

更新2:

leng = len(driver.find_elements(By.CSS_SELECTOR, "a[data-qa-target='provider-details-provider-name']"))
for i in range(leng):
  driver.find_element_by_xpath(f"(//a[text()='View Profile'])[{i}]").click()

相关问题 更多 >