Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Selenium单击没有名称或id的按钮_Javascript_Jquery_Python_Selenium_Automation - Fatal编程技术网

Javascript Selenium单击没有名称或id的按钮

Javascript Selenium单击没有名称或id的按钮,javascript,jquery,python,selenium,automation,Javascript,Jquery,Python,Selenium,Automation,我一直在努力使这个页面自动化。在我登录后,我会在这个页面上单击一个按钮,然后再重定向到下一个页面。问题是该按钮没有名称或ID,因此很难找到该元素。我试过机械化和斯普林特。最后尝试了硒,但也没用。真的很挣扎。只需要点击这个该死的按钮!任何帮助都将不胜感激。我喜欢python和自动化,但这一次似乎什么都不适合我。请在下面找到一个快照,其中显示了我单击“inspect element”时显示的代码。另外,我不能在这里输入页面源代码,因为它大于300000个字符,所以您可能可以查看页面(您需要登录,只需

我一直在努力使这个页面自动化。在我登录后,我会在这个页面上单击一个按钮,然后再重定向到下一个页面。问题是该按钮没有名称或ID,因此很难找到该元素。我试过机械化和斯普林特。最后尝试了硒,但也没用。真的很挣扎。只需要点击这个该死的按钮!任何帮助都将不胜感激。我喜欢python和自动化,但这一次似乎什么都不适合我。请在下面找到一个快照,其中显示了我单击“inspect element”时显示的代码。另外,我不能在这里输入页面源代码,因为它大于300000个字符,所以您可能可以查看页面(您需要登录,只需10秒钟)。我指的是你登录后的页面-


[!

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

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

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

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

您可以很容易地找到xpath,方法是转到Chrome上的inspect element侧栏,右键单击所需的元素。右键单击下拉菜单应该有一个选项“copy xpath”。

我将编写一个cssSelector,如下所示,然后进行尝试

button[onclick*='aSMS']
请注意,我正在使用*

进行部分搜索,其中有:

driver.findElement(By.className(“da sms btn”)

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

  • Chrome中的开放应用
  • 检查元件
  • 右键单击突出显示的区域
  • 复制CSS或XPATH

  • 非常感谢您的回复!实际上我可以用splinter而不是selenium使其工作!以下是我所做的-

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

    jsstring="window.parent.openPage('SendSMS?id="+id+"', 'aSendSMS', 'aSMS', 'ulSMS')"
    br.execute_script(jsstring)
    
    2) 随后,我遇到了一个问题,在下一页中,所有内容都嵌入到iframe中,因此按名称查找,而所有内容都无法找到元素。为此,splinter提供了一个很好的方法(该方法的文档记录非常糟糕,因此必须在stackoverflow的帮助下自己解决)


    非常棒!谢谢大家:)

    它是屏幕上唯一的按钮元素吗?太棒了!不知道XPATH:D的副本
    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")