Python,Selenium找不到ID为“next”的网页元素(button)

2024-09-20 06:49:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我开始用selenium学习python来自动化我的一些任务。我有个无法解决的问题。
我正在尝试创建一个脚本,它会自动单击“下一步”按钮。 我找不到ID为“next”的网页元素(按钮)。我尝试了所有可能的解决方案-通过ID、xpath等
我试图在其中查找元素的网页部分可能是由jquery动态生成的。
这是我得到的错误:

Unable to locate element: [id="next"]

以下是我在此之前所做的工作(片段):

from selenium import webdriver
from selenium.common.exceptions import WebDriverException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
import time
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

browser = webdriver.Firefox(executable_path=r'C:\Users\technik 
informatyk\Desktop\python\geckodriver.exe')

browser.get('https://it-szkola.edu.pl/usr')
browser.maximize_window()
browser.implicitly_wait(3)

zgoda = browser.find_element_by_xpath('//*[@id="cookieLayerBoxButton"]')
zgoda.click()

browser.implicitly_wait(10) 
emailElem = browser.find_element_by_id('login-box-field-input')
emailElem.send_keys('mylogin')

passwordElem = browser.find_element_by_id('password')
passwordElem.send_keys('mypassword')
passwordElem.submit()
time.sleep(2)
aktualnosci = browser.find_element_by_id('hBLAkt').click()
grandtest = browser.find_element_by_xpath('//* [@id="New178"]/div[2]/div[1]/p[2]/a').click()
lista = browser.find_element_by_link_text('Lista testów').click()
test = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.XPATH,"/html/body/div[2]/div[1]/div[2]/table/tbody/tr[5]/td[5]/a"))).click()

#browser.refresh()
#time.sleep(2)
nastepne = browser.find_element_by_id("next")

#nastepne = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.LINK_TEXT, "Następne")))
#nastepne = browser.find_element_by_link_text('Następne').click()
nastepne.click()

截图 Code

Pic1

Pic2

Pic3

Pic4

Pic5

你的帮助将不胜感激。你知道吗


Tags: fromimportdivbrowseridbyseleniumelement
1条回答
网友
1楼 · 发布于 2024-09-20 06:49:44

尝试xpath: browser.find_element_by_xpath('//button[@id="next"]')

尝试获取所有按钮:

btns = browser.find_elements_by_xpath('//button')
for btn in btns:
    txt = btn.text
    if txt == 'Następne':
         btn.click()

相关问题 更多 >