@FindBy(how = How.XPATH, usando = "//*[text()='A1. Approved']")
Private WebElement Aprobado;
driver.execute_script("argumentos[0].click();",Aprobado)
Lo que significa esta oración es usar JavaScript para realizar una operación de clic en el navegador y hacer clic en el elemento de la página "supportUser".
Específicamente, "driver.execute_script" es un método que llama al controlador del navegador y se puede utilizar para ejecutar código JavaScript en el navegador. "argumentos[0].click()" es un fragmento de código JavaScript, lo que significa llamar al método "clic" del primer parámetro (es decir, "supportUser"), para que pueda hacer clic en este elemento en el navegador.
En general, la función de esta oración es realizar automáticamente operaciones de clic en el navegador a través del controlador del navegador.
Si el código informa un error: selenium.common.exceptions.InvalidArgumentException: Mensaje: argumento no válido
Esto puede deberse a la forma en que interactúan los elementos o al diseño especial de la página. Para resolver este problema,
podemos probar las siguientes tres soluciones: simular operaciones del mouse, simular operaciones del teclado y operar a través de JavaScript.
1. Simular operaciones del mouse
Cuando no se puede hacer clic en un elemento mediante el método de clic, podemos simular las operaciones del mouse a través de la clase ActionChains de Selenium.
Pasos de la operación:
# 1. Importar la clase ActionChinas
desde selenium.webdriver importar ActionChains
# 2. Crear una instancia del objeto ActionChinas
acciones = ActionChains(driver)
# 3. Realizar operaciones con el mouse, como hacer clic en el elemento
action.click(ele).perform ()
Optimización de código
importar tiempo
desde selenio importar webdriver
desde pywinauto.keyboard importar send_keys
# 1. Importar la clase ActionChinas
desde selenium.webdriver importar ActionChains
prueba:
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. Crear una instancia del objeto ActionChinas
acciones = ActionChains(dr)
# 3. Realizar operaciones con el mouse, como hacer clic en el elemento
action.click(ele).perform()
time.sleep (3)
enviar_claves(claves=r'D:\api_test.jpg')
send_keys(keys='{ENTER}')
tiempo.sleep(30)
excepto Excepción como e:
elevar e
finalmente:
dr.quit()
2. Simular la operación del teclado
Si no se puede hacer clic en el elemento con el mouse, podemos intentar utilizar las operaciones del teclado para activar el evento correspondiente. Los pasos específicos son los siguientes:
Paquete de guía
desde selenium.webdriver.common.keys import Keys
envía teclas de teclado específicas en el elemento
element.send_keys(Keys.ENTER)# Simular la tecla Enter
3. Operación a través de js
Si no se puede hacer clic en los elementos mediante operaciones del mouse y el teclado, podemos intentar usar JavaScript para manipular directamente los elementos de la página. Los pasos específicos son los siguientes:
Utilice el método ejecutar_script para ejecutar código js
driver.execute_script("argumentos[0].click();", elemento)
Optimización del código de búsqueda de imágenes de Baidu
importar tiempo
desde selenio importar webdriver
desde pywinauto.keyboard importar send_keys
# 1. Importar la clase ActionChinas
desde selenium.webdriver importar ActionChains
prueba:
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"]')
# #Utilice execte_script para hacer clic. Porque es imposible hacer clic en
dr.execute_script("arguments[0].click();",ele) mediante click()
action.click(ele).perform()
time.sleep(3)
send_keys(keys=r' D:\api_test.
time.sleep(30)
excepto Excepción como e:
elevar e
finalmente:
dr.quit()