【问题标题】:How do I click a button in a form using Selenium and Python 2.7?如何使用 Selenium 和 Python 2.7 单击表单中的按钮?
【发布时间】:2016-08-24 00:37:39
【问题描述】:

我正在尝试创建一个 Python 程序,该程序会定期检查网站是否有特定更新。该站点是安全的,需要多次单击才能访问我要监视的页面。不幸的是,我一直在试图弄清楚如何单击特定按钮。这是按钮代码:

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

我尝试了多种方法来访问该按钮,但总是收到“selenium.common.exceptions.NoSuchElementException:”错误。访问按钮的明显方法是 XPath,使用 Chrome X-Path Helper 工具,我得到以下信息:

/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']

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

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 的新手,所以我可能会遗漏一些明显的东西;但是,经过多次谷歌搜索,我还没有找到明显的解决方案。

另一方面,我也尝试了 find_element_by_name('manageAptm') 和 find_element_by_class_name('bluebutton') 并且都给出了相同的错误。

有人可以建议我如何使用 Selenium 有效地单击此按钮吗?

谢谢!

【问题讨论】:

  • 你试过的find_element_by_name 看起来很有希望。尝试与wait一起使用它

标签: python python-2.7 selenium xpath selenium-webdriver


【解决方案1】:

要遵循您的尝试和@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 内。如果是,则需要切换到它的上下文,然后才发出“查找”命令:

driver.switch_to.frame("frame_name_or_id")
driver.find_element_by_name('manageAptm').click()

【讨论】:

    猜你喜欢
    • 2018-08-22
    • 2019-09-01
    • 2018-04-30
    • 2016-12-31
    • 2021-04-07
    • 2019-09-16
    • 2021-01-31
    • 2020-08-06
    • 2017-04-22
    相关资源
    最近更新 更多