Python Selenium登录到站点问题

Python Selenium登录到站点问题,python,selenium,selenium-webdriver,xpath,webdriverwait,Python,Selenium,Selenium Webdriver,Xpath,Webdriverwait,我需要您的帮助,以便使用selenium python登录到该站点。我无法理解html是通过xpath还是通过id或其他方式。 我试了这么多,但没有成功。所以我问你 我需要修复插入用户名,密码和登录按钮 from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait import os from time import sleep USER = os.getenv('myuser')

我需要您的帮助,以便使用selenium python登录到该站点。我无法理解html是通过xpath还是通过id或其他方式。 我试了这么多,但没有成功。所以我问你

我需要修复插入用户名,密码和登录按钮

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
import os
from time import sleep

USER = os.getenv('myuser')
PASS = os.getenv('mtypass')

driver = webdriver.Chrome()
#driver.get('https://exoikonomo2020.gov.gr/')

driver.get('https://exoikonomo2020.gov.gr/web/exoikonomese-kat-oikon/login')


#LoginURL = "//*[@id="p_p_id_56_INSTANCE_zSwUFIXoJ25s_"]/div/div/div[1]/div/div/div[2]/div/p[1]/a/img"
ContinueButton = "//span[text()='Συνέχεια']"

#ContinueButton = "//*[@id="_exoik_login_WAR_exoikonomov2portlet_:scribeOAuthBeanForm:j_idt116"]/span[2]"
UsernameURL = "text"
PasswordURL = "password"
LoginButtonURL = "loginForm"
Continue2 = "Εξουσιοδότηση"


#ButtonURL = "//button[@id='id_next']"
#WebURL = "//a[@id='id_web_app_link']"
#MonthsFromToday = "//input[@value='Run until 3 months from today']"

#LoginElement = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_xpath(LoginURL))
#LoginElement.click()

Continue1Element = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_xpath(ContinueButton))
Continue1Element.click()



UserElement = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_id(UsernameURL))
UserElement.clear()
UserElement.send_keys(USER)

PasswordElement = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_id(PasswordURL))
PasswordElement.clear()
PasswordElement.send_keys(PASS)

LogInButtonElement = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_id(LoginButtonURL))
ButtonElement.click()

Continue2Element = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_id(Continue2))
Continue2Element.click()


#WebElement =  WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_xpath(WebURL))
WebElement.click()

#MonthsElement =  WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_xpath(MonthsFromToday))
MonthsElement.click()

sleep(5)

driver.quit()

这应该可以做到:

username=driver。通过css\u选择器(“输入[name='j\u username'])查找元素
password=driver。通过_css_选择器(“输入[name='j_password'])查找_元素
按钮=驱动程序。通过css选择器(“输入[type='button'])查找元素
用户名。发送密钥(用户)
密码。发送密钥(通过)
按钮。单击()
要将字符序列发送到用户名密码字段,并单击中的“登录”按钮,您需要对进行归纳,您可以使用以下任一选项:

  • 使用
    XPATH

    driver.get("https://exoikonomo2020.gov.gr/web/exoikonomese-kat-oikon/login")
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//span[text()='Συνέχεια']"))).click()
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@name='j_username']"))).send_keys("ΔημήτρηςΤσινίκος@stackoverflow.com")
    driver.find_element(By.XPATH, "//input[@name='j_password']").send_keys("ΔημήτρηςΤσινίκος")
    driver.find_element(By.XPATH, "//input[@value='Είσοδος']").click()
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
  • 浏览器快照:


我展示了我尝试的图像!

我还需要学习如何用python上传文件。。。。(这里有一个按钮,例如从计算机上传图片)。我想这很容易。我只是想在谷歌和youtube上搜索

我还需要学习如何要求把,用户名,密码和其他填写。 所以我为其他用户制作表单…并导出otheruser.py

我最好的办法就是把它图形化!什么程序可以使它图形化

多谢各位