繁体   English   中英

python中的硒代码在登录页面后填写表格

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM