单击 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()
尝试使用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)
稍后在我的代码中有 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)))
抱歉并感谢在这方面帮助过我的人
当前行为
使用这段代码
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()
尝试使用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)
稍后在我的代码中有 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)))
抱歉并感谢在这方面帮助过我的人