如何使用Selenium和Python2.7单击表单中的按钮?

2024-09-28 23:20:47 发布

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

我正在尝试创建一个Python程序,它定期检查网站的特定更新。该网站是安全的,需要多次单击才能访问我要监视的页面。不幸的是,我被困在想如何点击一个特定的按钮。下面是按钮代码:

<input type="button" class="bluebutton" name="manageAptm" value="Manage Interview Appointment" onclick="javascript:programAction('existingApplication', '0');">

我尝试了很多方法来访问按钮,但总是得到“selenium.common.异常.NoSuchElementException:“错误。访问按钮的明显方法是XPath,使用Chrome X-Path Helper工具,我得到以下结果:

^{pr2}$

如果我将上述内容包括在内:

browser.find_element_by_xpath("/html/body/form/table[@class='appgridbg mainContent']/tbody/tr/td[2]/div[@class='maincontainer']/div[@class='appcontent'][1]/table[@class='colorgrid']/tbody/tr[@class='gridItem']/td[6]/input[@class='bluebutton']").submit()

我仍然得到NoSuchElementException错误。在

我对selenium还不熟悉,所以可能有一些明显的东西我没有找到;但是,在google上搜索了很多之后,我还没有找到一个明显的解决方案。在

另一个注意事项是,我也尝试过用unu name('manageAptm')和find_element_by_class_name('bluebutton')查找元素,但都给出了相同的错误。在

有人能告诉我如何有效地点击Selenium按钮吗?在

谢谢你!在


Tags: 方法nameinputby网站selenium错误table
1条回答
网友
1楼 · 发布于 2024-09-28 23:20:47

要遵循您的尝试和@har07的注释,find_element_by_name('manageAptm')应该可以工作,但是元素可能不会立即可用,您可能需要wait for it

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

wait = WebDriverWait(driver, 10)
manageAppointment = wait.until(EC.presence_of_element_located((By.NAME, "manageAptm")))
manageAppointment.click()

另外,检查元素是否在iframe内。如果是,则需要切换到它的上下文,然后才发出“find”命令:

^{pr2}$

相关问题 更多 >