单击 Selenium 和鼠标单击之间的不同行为

Different behavior between a click Selenium and Mouse click

当前行为

使用这段代码

    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

在此页面上

我最终回到了登录页面page

而如果我在

上设置一个断点
browser.find_element(button_type, button_value).click()

然后我用鼠标手动点击

我要转到想要的页面

预期行为

通过 Selenium 到达所需页面(即不是登录页面),就像我手动单击下一步按钮一样

PS:PIN html source 以备不时之需

尝试使用 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()

尝试使用EnterReturn

点击
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)

稍后在我的代码中有 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))) 

抱歉并感谢在这方面帮助过我的人