Различное поведение между щелчком мыши Selenium и щелчком мыши - PullRequest
1 голос
/ 23 января 2020

Текущее поведение

Используя этот фрагмент кода

    from selenium import webdriver
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By
    browser = webdriver.Firefox()
    button_value = '/html/body/div/div[2]/div/div/div/div/div[1]/div/form/div/div[3]/div[3]/a[2]'
    .........
    browser.find_element(By.XPATH, pin_box).send_keys(pin)
    browser.find_element(By.XPATH,, button_value).click() #Click NEXT Button

на этой странице

enter image description here

В итоге я возвращаюсь на страницу входа страницу

Принимая во внимание, что если я ставлю точку останова на

browser.find_element(button_type, button_value).click()

, и я нажимаю мышью вручную enter image description here

Я иду на нужную страницу

Ожидаемое поведение

Чтобы попасть на нужную страницу ( т.е. не страница входа) через Selenium, как если бы я вручную нажимал на следующую кнопку

PS: PIN html источник на случай, если вам нужно

Ответы [ 2 ]

3 голосов
/ 23 января 2020

Попробуйте нажать webdriver wait или отправить ENTER на кнопку next. В качестве последнего варианта вы можете попробовать кликнуть с помощью Javascript.

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

element = WebDriverWait(driver, 20).until(
EC.element_to_be_clickable((By.XPATH, "//a[.='NEXT']")))
element.click()

попробуйте кликнуть с помощью Enter или Return

element.send_keys(Keys.RETURN)

ИЛИ

element.send_keys(Keys.ENTER)

ИЛИ (попробуйте щелкнуть сценарием Java, но без ожидания, так как это может быть неудачным при ожидании)

element=browser.find_element(By.XPATH, "//a[.='NEXT']")
browser.execute_script("arguments[0].click();", element)
0 голосов
/ 25 января 2020

Позже в моем коде произошло перенаправление URL. Это перенаправление не дало времени для отправки клика для завершения. Следующий код исправил проблему

.......    
browser.find_element(By.XPATH, pin_box).click() #Click NEXT Button
WebDriverWait(browser, timeout).until(EC.invisibility_of_element_located((By.XPATH, pin_box))) 

Извините и спасибо тем, кто помог мне в этом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...