【问题标题】:Selenium clicking button with no name or idSelenium 单击没有名称或 ID 的按钮
【发布时间】:2015-11-02 17:27:44
【问题描述】:

我一直在努力尝试自动化此页面。登录后,我会在此页面上单击一个按钮,然后再将我重定向到下一页。问题是该按钮没有名称或 ID,因此很难找到该元素。我已经尝试过机械化和分裂。最后尝试了硒,但这也无济于事。真的在为此苦苦挣扎。只需要点击这个该死的按钮!任何帮助将不胜感激。喜欢 python 和自动化,但这次似乎没有什么对我有用。请在下面找到显示当我单击“检查元素”时显示的代码的快照。另外,我无法在此处输入页面源代码,因为它超过 300000 个字符,因此您可能可以查看该页面(您需要登录,只需 10 秒)。我指的是你登录后的页面 - http://www.160by2.com/Index

[!Snapshot showing the code I get when I click "inspect element" []1

【问题讨论】:

  • 它是否在屏幕上唯一的按钮元素中?

标签: javascript jquery python selenium automation


【解决方案1】:

非常感谢您的回复!我实际上能够使用 splinter 而不是 selenium 使它工作!这就是我所做的-

1) 我刚刚执行了在按钮的 onclick 事件上执行的 js。

jsstring="window.parent.openPage('SendSMS?id="+id+"', 'aSendSMS', 'aSMS', 'ulSMS')"
br.execute_script(jsstring)

2) 随后,我遇到的问题是,在下一页,所有内容都嵌入到 iframe 中,因此 find_by_name 和所有内容都无法找到元素。为此, splinter 提供了一个不错的方法(记录在案的确实很糟糕,因此必须在 stackoverflow 的帮助下自己弄清楚)

with br.get_iframe('iframe_Name') as iframe:
     iframe.fill("Element_to_fill_Name","Text_to_fill")
     iframe.find_by_tag("TagName")[Index_number].fill("Text_To_Fill")

效果很好!谢谢大家:)

【讨论】:

    【解决方案2】:

    class name

    driver.findElement(By.className("da-sms-btn").

    您也可以在 Chrome 中打开应用程序并在浏览器中复制 CSS 或 XPATH:

    1. 在 Chrome 中打开应用程序
    2. 检查元素
    3. 右键单击突出显示的区域
    4. 复制 CSS 或 XPATH

    【讨论】:

    • 太棒了!不知道那个 XPATH 副本:D
    【解决方案3】:

    我会按如下方式编写一个 cssSelector 并尝试一下。

    button[onclick*='aSMS']
    

    注意,我正在使用 * 进行部分搜索

    【讨论】:

      【解决方案4】:

      您可以尝试通过其 xpath 找到该元素。 Selenium 在这方面做得很好:

      webdriver.find_element_by_xpath("element xpath").click()
      

      您可以通过转到 Chrome 上的检查元素侧边栏并右键单击所需的元素来轻松找到 xpath。右键单击下拉菜单应该有一个选项“复制 xpath”。

      【讨论】:

        【解决方案5】:

        您可以尝试先通过 id 获取表单,然后通过类名获取按钮:

        wd.find_element_by_id("frmDashboard").find_element_by_class_name("da-sms-btn").click()
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-07-15
          • 1970-01-01
          • 2021-02-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多