@FindBy(how = How.XPATH, using = "//*[text()='A1. Approved']")
private WebElement approuvé ;
driver.execute_script("arguments[0].click();",Approuvé)
Ce que cette phrase signifie, c'est utiliser JavaScript pour effectuer une opération de clic dans le navigateur et cliquer sur l'élément de page « supportUser ».
Plus précisément, "driver.execute_script" est une méthode qui appelle le pilote du navigateur (pilote), qui peut être utilisé pour exécuter du code JavaScript dans le navigateur. "arguments[0].click()" est un morceau de code JavaScript, qui consiste à appeler la méthode "click" du premier paramètre (c'est-à-dire "supportUser"), afin que vous puissiez cliquer sur cet élément dans le navigateur.
En général, la fonction de cette phrase est d'effectuer automatiquement des opérations de clic dans le navigateur via le pilote du navigateur.
Si le code signale une erreur : selenium.common.exceptions.InvalidArgumentException : Message : argument non valide
Cela peut être dû à la manière dont les éléments interagissent ou à la conception particulière de la page. Afin de résoudre ce problème,
nous pouvons essayer les trois solutions suivantes : simuler les opérations de la souris, simuler les opérations du clavier et opérer via JavaScript.
1. Simulez les opérations de la souris
Lorsqu'il est impossible de cliquer sur un élément via la méthode click, nous pouvons simuler les opérations de la souris via la classe ActionChains de Selenium.
Étapes de l'opération :
# 1. Importez la classe ActionChinas
depuis selenium.webdriver import ActionChains
# 2. Instanciez l'objet ActionChinas
actions = ActionChains(driver)
# 3. Effectuez des opérations avec la souris, telles que cliquer sur l'élément
actions.click(ele).perform ()
Optimisation du code
importer l'heure
depuis Selenium importer webdriver
depuis pywinauto.keyboard importer send_keys
# 1. Importer la classe ActionChinas
depuis selenium.webdriver importer ActionChains
essayer :
dr = webdriver.Chrome()
dr.get("https://www.baidu.com")
dr .implicitly_wait(5)
dr.find_element_by_xpath('//span[@class="soutu-btn"]').click()
ele = dr.find_element_by_xpath('//div[@class="upload-wrap"]/ input[@type="file"]')
# 2. Instanciez l'objet ActionChinas
actions = ActionChains(dr)
# 3. Effectuez des opérations avec la souris, comme cliquer sur l'élément
actions.click(ele).perform()
time.sleep (3)
send_keys(keys=r'D:\api_test.jpg')
send_keys(keys='{ENTER}')
time.sleep(30)
sauf exception comme e :
augmenter e
enfin :
dr.quit()
2. Simuler le fonctionnement du clavier
Si l'élément ne peut pas être cliqué avec la souris, nous pouvons essayer d'utiliser des opérations au clavier pour déclencher l'événement correspondant. Les étapes spécifiques sont les suivantes :
Forfait guide
à partir de selenium.webdriver.common.keys import Keys
envoie des touches de clavier spécifiques sur l'élément
element.send_keys(Keys.ENTER)# Simuler la touche Entrée
3. Fonctionnement via js
Si les éléments ne peuvent pas être cliqués via les opérations de la souris et du clavier, nous pouvons essayer d'utiliser JavaScript pour manipuler directement les éléments de la page. Les étapes spécifiques sont les suivantes :
Utilisez la méthode execute_script pour exécuter le code js
driver.execute_script("arguments[0].click();", element)
Optimisation du code de recherche d'images Baidu
importer l'heure
depuis Selenium importer webdriver
depuis pywinauto.keyboard importer send_keys
# 1. Importer la classe ActionChinas
depuis selenium.webdriver importer ActionChains
essayer :
dr = webdriver.Chrome()
dr.get("https://www.baidu.com")
dr .implicitly_wait(5)
dr.find_element_by_xpath('//span[@class="soutu-btn"]').click()
ele = dr.find_element_by_xpath('//div[@class="upload-wrap"]/ input[@type="file"]')
# #Utilisez execte_script pour cliquer. Parce qu'il est impossible de cliquer sur
dr.execute_script("arguments[0].click();",ele) via click()
actions.click(ele).perform()
time.sleep(3)
send_keys(keys=r' D:\api_test.
time.sleep(30)
sauf exception comme e :
augmenter e
enfin :
dr.quit()