我正在尝试创建一个脚本来登录我的交易账户。
目前,我可以点击页面进行登录,但是脚本无法找到用户名或密码输入。
我在下面放了一个脚本的副本。
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] 删除。
我来说两句