使用 Selenium (Python) 自动登录

寿司

我正在尝试创建一个脚本来登录我的交易账户。

目前,我可以点击页面进行登录,但是脚本无法找到用户名或密码输入。

我在下面放了一个脚本的副本。

PATH = "C:\Program Files (x86)\chromedriver.exe"

driver = webdriver.Chrome(PATH)

driver.get("https://www.anz.com.au/personal/investing-super/online-share-investing/")

## Clicking on the login button
try:
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.LINK_TEXT, "Log in"))
    )
    element.click()
    print("success in clicking button")

except:
    print("login button has failed")
    driver.quit()
    
## Entering in credentials
driver.switch_to.frame(driver.find_element_by_tag_name('iframe'))
driver.find_element_by_xpath("//*[@id = 'username']").send_keys("123456")
driver.find_element_by_id("password").send_keys("hello")

# try:
#     # print("switch success")
#     element = WebDriverWait(driver, 10).until(
#         EC.presence_of_element_located((By.ID, "username"))
#     )
#     print("finding element success")
#     element.click()
#     element.send_keys("blanklogin")
  
# except:
#     print("credentials login has failed")
#     driver.quit()

我试过同时使用 xPath + ID 进行搜索,但没有运气:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id = 'username']"}

我还注意到其他一些用户在使用 iframe 时遇到了问题,因此尝试将其包含在代码中,但没有运气。我也试过先点击这个框(在 try-except 语句中),但这也不起作用。

非常感谢任何输入。

谢谢!!

编辑:附上有问题的 HTML 的屏幕截图:html

游轮潘迪

当您单击第一页上的登录按钮时,会打开一个新选项卡。您需要切换到新选项卡,然后您可以与用户名、密码字段进行交互:

PS:我在页面中没有看到任何 iframe,所以你不需要切换到它。

示例代码:-

PATH = "C:\Program Files (x86)\chromedriver.exe"

driver = webdriver.Chrome(PATH)
driver.maximize_window()
driver.implicitly_wait(30)
driver.get("https://www.anz.com.au/personal/investing-super/online-share-investing/")
wait = WebDriverWait(driver, 20)

current_handle = driver.current_window_handle
## Clicking on the login button
try:
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.LINK_TEXT, "Log in"))
    )
    element.click()
    print("success in clicking Login in button")

except:
    print("Bot could not click on login button.")
    driver.quit()

all_handles = driver.window_handles
driver.switch_to.window(all_handles[1])

wait.until(EC.element_to_be_clickable((By.ID, "username"))).send_keys('123456')
wait.until(EC.element_to_be_clickable((By.ID, "password"))).send_keys('hello')
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.login-button"))).click()

进口:

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章