【问题标题】:How do I click a Javascript button on a webpage using python selenium如何使用 python selenium 在网页上单击 Javascript 按钮
【发布时间】:2017-06-22 10:34:04
【问题描述】:

我知道这个问题已经在这里被问过一百万次了,我都试过了,我仍然无法让我的 python 代码点击一个按钮!

以下是所述按钮的检查元素的结果: <input value="New Quote" class="btn" name="new_quote_wizard" title="New Quote" type="button" onclick="if (window.invokeOnClickJS_00bC0000001TjBl) window.invokeOnClickJS_00bC0000001TjBl(this); else if (parent.window.invokeOnClickJS_00bC0000001TjBl) parent.window.invokeOnClickJS_00bC0000001TjBl(this); return false">

我试过了:

browser.find_element_by_name('New Quote').click()

但它返回此错误:

selenium.common.exceptions.NoSuchElementException:消息:无法找到元素:[name="New Quote"]

我还能做些什么来点击这个按钮?

【问题讨论】:

  • 一百万次 ... 我都试过了 - 非常大胆的声明,因为你只给出一个你试过的例子。 ;-) 但也许你不应该搜索New Quote,即value,而是搜索new_quote_wizard,即name
  • 感谢@ChristianKönig!但不幸的是,我也尝试过,但它也失败并出现类似的错误消息:selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: [name="new_quote_wizard"] 我也试过 browser.findElementByXpath ("//输入[@value='新报价'][@title='新报价']").click();为此它说它无法识别 xpath 命令
  • 标签是否在任何框架或 iframe 内?
  • 我不这么认为,我怎么能确定呢?

标签: python selenium-webdriver


【解决方案1】:

看起来问题出在按名称提供值的选择元素中。试试这个:

browser.find_element_by_name('new_quote_wizard').click()

【讨论】:

  • 谢谢@peregrino!但我也试过了,它出现了同样的错误:selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: [name="new_quote_wizard"]
【解决方案2】:

好的,伙计们 - 我在这里解决了另一个 stackoverflow 问题:How do I click a button in a form using Selenium and Python 2.7?

所以基本上,我不得不等待元素!

我将这些行添加到我的代码中:

wait = WebDriverWait(browser, 10) newQuote = wait.until(EC.presence_of_element_located((By.NAME, "new_quote_wizard"))) newQuote.click()

感谢大家的帮助!

【讨论】:

    猜你喜欢
    • 2021-06-23
    • 2014-12-18
    • 2022-11-20
    • 1970-01-01
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    • 2016-08-27
    • 2019-09-01
    相关资源
    最近更新 更多