Не удается отправить форму входа в систему с Selenium (Python)Html

Программисты Html
Ответить
Anonymous
 Не удается отправить форму входа в систему с Selenium (Python)

Сообщение Anonymous »

Я пытаюсь войти на веб -сайт, используя Selenium. Соответствующая форма HTML выглядит следующим образом: < /p>

Код: Выделить всё



Email Address








Password









Sign In




< /code>
Я использую пакет Selenium python, с удаленным драйвером, работающим в докере на том же хосте с автономным браузером Firefox. Версия селена 4.29.0. Firefox версия 135.0.1. Геккодривер составляет 0,36,0. Python версия 3.11. Хост Debian 12 без графического интерфейса.  < /P>
Соответствующий код выглядит следующим образом: < /p>
import time
import docker
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

def setupDockerFirefoxSeleniumContainer():
client = docker.from_env()
client.images.pull("selenium/standalone-firefox:135.0.1-geckodriver-0.36.0-20250303")
firefox = client.containers.run("selenium/standalone-firefox:135.0.1-geckodriver-0.36.0-20250303",
detach = True,
name = "firefox",
ports = {4444: 4444, 7900: 7900},
shm_size = "2G",
environment = ["SE_START_XVFB=false",
"SE_SCREEN_WIDTH=1200",
"SE_SCREEN_HEIGHT=900"])
return firefox

def setupSeleniumFirefoxDriver():
try:
options=webdriver.FirefoxOptions()
options.add_argument("--headless")
options.add_argument("--disable-gpu")
options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:36.0) Gecko/20100101 Firefox/135.0")
driver = webdriver.Remote(
command_executor="http://127.0.0.1:4444/wd/hub",
options=options
)
driver.get("https://httpbin.org/ip")
print("Successfully started Firefox driver.")
return driver

except Exception as e:
print("Caught an exception: ", repr(e))

def cleanupDriver(d):
print("Cleaning up driver")
d.quit()

def cleanupContainer(c):
print("Cleaning up container")
c.stop()
c.remove()

def siteLogin(driver, username, password):
driver.get("https://www.MYWEBSITE.com/login")
driver.implicitly_wait(5)
driver.get_screenshot_as_file("/home/fresh_login_screen.png")

username_box = driver.find_element(by=By.NAME, value="emailInput")
password_box = driver.find_element(by=By.NAME, value="passwordInput")
submit_button = driver.find_element(by=By.CLASS_NAME, value="submitButton")

time.sleep(2)
username_box.send_keys(username)
time.sleep(2)
password_box.send_keys(password)
time.sleep(2)
driver.get_screenshot_as_file("/home/login_screen_keys_sent.png")
time.sleep(2)
#submit_button.click() # doesn't work
#submit_button.submit() # doesn't work
#password_box.submit() # doesn't work
#password_box.send_keys(Keys.ENTER) # doesn't work
submit_button.send_keys(Keys.ENTER) # doesn't work

print("Waiting for login to process.")
time.sleep(5)
driver.get_screenshot_as_file("/home/submitted_login.png")
time.sleep(10)
driver.get_screenshot_as_file("/home/another_screenshot.png")
print(driver.page_source)

def main():
firefoxContainer = setupDockerFirefoxSeleniumContainer()

print("Waiting 5 seconds for Selenium server to start")
time.sleep(5)
firefoxDriver = setupSeleniumFirefoxDriver()

try:
siteLogin(firefoxDriver, "myEmail@example.com", "crazyHardPassword")

except Exception as e:
print("Caught an exception when trying siteLogin: ", repr(e))

finally:
cleanupDriver(firefoxDriver)
cleanupContainer(firefoxContainer)

if __name__=="__main__":
main()

< /code>
Представление входа в систему не работает. Страница, кажется, просто висит. В моих скриншотах я вижу, как мое имя пользователя и пароль были отправлены в правильные окны формы. Тем не менее, я попробовал несколько способов отправить форму (send_keys(Keys.ENTER)
, click () и отправить () ), но, похоже, все, похоже, ничего не произойдет. Снимок экрана выглядит так же до и после (с моим именем пользователя и паролем, сидящими в форме, но, похоже, не было предпринято никакого представления формы). Какие -нибудь советы, как отправить эту форму?


Подробнее здесь: https://stackoverflow.com/questions/795 ... ium-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»