【发布时间】:2019-03-12 04:51:31
【问题描述】:
我开始使用 selenium 学习 python 来自动化我的一些任务。我有一个无法解决的问题。
我正在尝试创建一个会自动单击“下一步”按钮的脚本。
我找不到 ID 为“下一步”的网页元素(按钮)。我尝试了所有可能的解决方案 - 通过 ID、通过 xpath 等。
我试图在其中查找元素的网页部分可能是由 jquery 动态生成的。
这是我得到的错误:
无法定位元素:[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()
截图 ,
,
,
,
,
您的帮助将不胜感激。
【问题讨论】:
-
您可以在您的页面上上传 HTML 文本而不是屏幕截图吗?这将有助于故障排除。
-
请检查按钮是否在 iframe 元素内?当您按下运行测试时,测试会在新窗口中打开吗?
-
@tomko Don't do this
-
@Jdoe 你确定这是
id='next'的唯一元素吗?我被类似的东西咬过。有时,出于某种原因,某些网站可能具有类似的结构重复很多次(javascript、css 技巧等),您会找到一些东西,但不是您要找的东西。试过用xpath吗?它是这样发现的吗?