0
votes

Impossible de trouver l'élément

https://www.xendpay.com

Voici la page. Il est nécessaire de retirer une entrée de celui-ci xxx

et entrez un autre texte dans.

J'ai essayé de le faire via ID, via XPATH, à travers @name. Quel pourrait être le problème? xxx

< img src = "https://i.stack.imgur.com/ktzc8.png" alt = "Entrez la description de l'image ici">


2 commentaires

J'entre la page et je n'ai même pas trouvé d'élément avec cet identifiant et cet identifiant. Utilisation: len (pilote.find_elements_by_name ('PaymentAmount')) J'ai 0 éléments avec cet identifiant et cet identifiant, dites-en un peu plus


Je ne vois pas non plus, mais il y en a un sur la page. Ce bloc est chargé à l'aide de JS


3 Réponses :


1
votes

Votre élément est situé dans la balise HTML Iframe. Vous devez passer à l'iframe (iframeresizer0 dans le lien que vous avez fourni):

driver.SwitchTo().Frame(driver.FindElement(By.Id("iFrameResizer0")));

... do your find here.

// switch back to default
driver.DefaultContent();


0 commentaires

0
votes

obtenu:

driver.switch_to_frame("iFrameResizer0")
driver.find_elements_by_name('paymentAmount')


0 commentaires

1
votes

Il y a iframe, vous devez vous allumer, attendre que le chargeur disparaisse, supprimez une valeur ancienne dans l'entrée et de régler la vôtre.

from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
wait = WebDriverWait(driver, 20)
driver.get("https://www.xendpay.com/")
wait.until(EC.frame_to_be_available_and_switch_to_it((By.ID, "iFrameResizer0")))
wait.until(EC.invisibility_of_element_located((By.CLASS_NAME, "loader")))
payment_amount = wait.until(EC.element_to_be_clickable((By.ID, "paymentAmount")))
ActionChains(driver).double_click(payment_amount).send_keys(Keys.DELETE).send_keys("999").perform()


1 commentaires

C'est une très belle