J'essaie d'automatiser la navigation sur plusieurs pages de listes de médecins. La pièce avec laquelle j'ai des difficultés est de savoir comment obtenir le sélénium de trouver et de cliquer sur la flèche droite qui passe aux pages suivantes de 10 médecins.
J'essaie plusieurs solutions potentielles de Stackoverflow différents pour les derniers jours. et je suis toujours complètement percuté. p>
from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By # from selenium.webdriver.common import move_to_element from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.actions import interaction import time import sys browser = webdriver.Chrome('C:/chromedriver.exe') browser.get('https://connect.werally.com/county-plan-selection/uhc.mnr/zip') elem_ZipInput = browser.find_element_by_xpath('//*[@id="location"]') elem_ZipInput.click() elem_ZipInput.send_keys('80210') elem_ZipInput.send_keys(Keys.ENTER) time.sleep(2) browser.find_element_by_xpath("//button[@track='No Preference']").click() time.sleep(3) browser.find_element_by_xpath("//button[@data-test-id='People']").click() time.sleep(2) try: browser.find_element_by_xpath("//button[@data-test-id='Primary Care']").click() except: browser.find_element_by_xpath("//button[@data-test-id='PrimaryCare']").click() time.sleep(2) try: browser.find_element_by_xpath("//button[@data-test-id='All Primary Care Physicians']").click() except: browser.find_element_by_xpath("//button[@data-test-id='AllPrimaryCarePhysicians']").click() time.sleep(2) elem_PCPList_NextPage = browser.find_element_by_xpath("//i[@class='icon icon_arrow_right']") ProviderPageTab_Overview = browser.find_element_by_xpath("//*[@id='provider.bioTab']") ProviderPageTab_Overview.click() time.sleep(2) # WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.XPATH, "//compare-providers[@class='navigationHeader visible-phone']/div/div/button[@track='next-page']/icon/i"))).click() # WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"div[id='mainContent'] div div header compare-providers[class='navigationHeader visible-phone'] div div button[track='next-page']"))).click() # WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"div[id='mainContent'] div div header div[class='navigationHeader hidden-phone'] div div button[track='next-page'] icon"))).click() wait = WebDriverWait(webdriver, 10) wait.until(EC.element_to_be_clickable(By.CSS_SELECTOR,"div[id='mainContent'] div div header div[class='navigationHeader hidden-phone'] div div button[track='next-page'] icon")) # print(browser.find_element_by_xpath("//i[@class='icon icon_arrow_right']")) # print(browser.find_element_by_xpath("//button[@aria-label='Next Page']")) next_Provider = browser.find_element_by_xpath("//compare-providers[@class='navigationHeader visible-phone']/div/div/button[@track='next-page']/icon/i") #print(//compare-providers[@class='navigationHeader visible-phone']/div/div/button[@track='next-page']/icon/i) # print(browser.find_element_by_xpath("//button[@track='next-page']")) # print(browser.find_element_by_xpath("//icon[@type=\"'icon_arrow_right'\"]")) next_Provider.click()
3 Réponses :
à en utilisant en utilisant note forte>: Vous devez ajouter les importations suivantes: p>
Cliquez () CODE> sur l'élément souhaité que vous devez induire webDriverwait em> pour le
ollement_to_be_clickable () code> et vous pouvez utiliser l'un ou l'autre des Suivant Stratégies de localisateur :
css_selector code>: p>
xpath code>: p>
@ MADDER12358 J'ai vu que vous avez eu plusieurs essais de code utiles pour analyse. Pouvez-vous essayer une fois avec ma solution et me contacter avec le statut s'il vous plaît?
Les suivants ont fonctionné pour moi -
next_page_btn = browser.find_element_by_xpath("//button[@track='next-page']") next_page_btn.click() time.sleep(2)
premier élément de contrôle visible sur la page ou non après cela cliquez sur cet élément Voici le code d'exemple:
WebDriverWait wait= new WebDriverWait(driver, 20); wait.until(ExpectedConditions.visibilityOf("path of the element")); browser.find_element_by_xpath("path of the element").click();
s'il vous plaît poster html pertinent