Comment traverser tout TR pour donner des valeurs dans td.in mon code Il est primordial le même tr / td.
Ma table. P>
#add qty rowCount=len(driver.find_elements_by_xpath("//tbody[@id='gridview-1161-body']/tr")); print(rowCount) for row in rowCount: element = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "td.x-grid-cell.x-grid-td.rp-grid-editable-cell[role='gridcell']"))) element.click() time.sleep(2) #input box to give qty-working for this id driver.find_element(By.ID, "numberfield-1243-inputEl").send_keys('10') driver.find_element(By.ID, "numberfield-1243-inputEl").send_keys(Keys.ENTER)
3 Réponses :
Obtenez toutes les lignes, puis trouvez l'enfance secondaire avec xpath et index: p> td code> et
entrée code>:
Rows = wait.until (EC.Visiviy_of_Alt_elements_LOCated ((((CSSS_SEL OTEDER) TR [ID * = '- Record -']. X-Grid-Data-Row ")))) Fichier" C: \ Utilisateurs \ 1024983 \ Appdata \ Local \ Programmes \ Python \ Python37 \ LIB \ SITE-SITE-PACKAGES \ SELEN IUM \ WEBDRIVER \ SUPPOR T \ PAYER.PY ", LINE 80, EN JUSQU'À JUSQU'À SUPPORTER TEMPSEXEXCEPT (message, écran, StackTrace) Selenium.common. exceptions.timeoutException: Message:
Même après avoir chargé cette page, je reçois une erreur de délai d'attente.
Essayez-le avec présence_of_all_elements_located code>. Vérifier le code mis à jour
rangée.find_element_by_css_selector ("TD [ROLE [ROLE = 'GRIDCELL']")
Essayez le deuxième code avec xpath avec ollement_to_be_clickable code> ou supprimer Cliquez sur Click
Pour gérer l'identifiant dynamique Induce webDriverwait () code> et
visibilité_of_all_elements_located code> ()
et suivant l'option
xpath code>.
driver=webdriver.Chrome()
rows=WebDriverWait(driver,15).until(EC.visibility_of_all_elements_located((By.XPATH,"//tbody[contains(@id,'-body')]//tr[@class='x-grid-row x-grid-data-row']")))
for rownum in range(len(rows)):
#To avoid stale exception re-assign rows elements again
rows = WebDriverWait(driver, 10).until(EC.visibility_of_all_elements_located((By.XPATH, "//tbody[contains(@id,'-body')]//tr[@class='x-grid-row x-grid-data-row']")))
element=rows[rownum].find_element_by_xpath(".//td[contains(@class,'rp-grid-editable-cell rp-grid-editable-cell') and @role='gridcell']")
element.click()
input=rows[rownum].find_element_by_xpath(".//input[@name='Quantity' and @role='spinbutton']")
input.send_keys('10')
input.send_keys(Keys.ENTER)
@Divyamani: Pouvez-vous partager votre URL si possible. Ce code doit fonctionner pour chaque ligne, à moins que quelque chose ne changeait.
Element = lignes [ROWNUM] .Find_Element_by_xpath (".// TD [contient (@ Classe, 'RP-GRID-EDITH-EDITALE-CELLLE-CELLLE-COLETH-EDITH-EDITH-EDITAIBLE-EDITAIBLE-EDITAIBLE-EDITAIBLE-EDITAIBLE-Cell') et @ ROLE = 'GRIDCELL']" ) IndexError: index de liste hors de portée C'est ce que je reçois de la deuxième itération.Veuillez m'aider à résoudre ce problème
traverser tout le enfant
code> étiquettes à envoyer séquence de caractères em> Vous devez induire < em> webdiverwait em> pour le visibilité_of_all_elements_located () code> et vous pouvez utiliser ce qui suit Stratégies de localisateur :
Prenez tous les
TR code> dans la liste et itérez-le alors do
List [0] .Find_Element (TD) CODE>
J'ai beaucoup de TD à l'intérieur de la seule tr. @Dev
obtenir ces
td code> de chaque
tr code> dans la liste et itérer cette liste aussi bien