[英]Trying to fill login form using JS inside python with selenium
[英]Selenium code in python to fill form after a login page
嗨,我当时设计了一个Selenium中的python脚本,该脚本将在登录请求后运行以填写表单。 我已经能够填写我的登录详细信息,然后单击“提交”,然后浏览器会自动关闭。 这是我用来登录的代码。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import ui
def page_is_loaded(driver):
return driver.find_element_by_tag_name("body") != None
driver = webdriver.Firefox()
driver.get("http://www.example.com")
wait=ui.WebDriverWait(driver,10)
wait.until(page_is_loaded)
USERNAME = driver.find_element_by_xpath("/html/body/form/center/div[2]/table/tbody/tr[2]/td/table/tbody/tr[1]/td[2]/input")
USERNAME.send_keys("alberteinstein")
PASSWORD = driver.find_element_by_xpath("/html/body/form/center/div[2]/table/tbody/tr[2]/td/table/tbody/tr[2]/td[2]/input")
PASSWORD.send_keys("IamHISson")
Login_Button=driver.find_element_by_xpath("/html/body/form/center /div[2]/table/tbody/tr[3]/td/div/input")
Login_Button.click()
在这段代码之后,有一个表格需要填写。
我可以编写代码来填写表格,问题是如何让硒等待下一页加载,我还需要提供下一页的链接吗?
授权完成后,您可能需要使用WebDriverWait
模块来等待直到页面上显示所需的元素:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.ID, ‘id_of_input_field_of_your_form’)))
此代码将强制webdriver
等待30秒,直到页面上显示输入字段(首先要填充)。 如果在30秒内未显示元素,则会引发TimeoutException
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.