我一直在努力尝试自动化此页面。登录后,我在这个页面上,在我将我重定向到下一页之前,我应该点击一个按钮。问题是这个按钮没有名称或ID,这使得很难找到这个元素。我试过机械化和分裂。最后尝试了硒,但这也没有帮助。真的很挣扎。只需要点击这个该死的按钮!任何帮助都会非常感激。喜欢python和自动化,但这次似乎没有什么对我有用。请在下面找到一张快照,显示我点击“检查元素”时显示的代码。此外,我无法在此输入页面源代码,因为它是> 300000个字符,因此您可以查看该页面(您需要登录,只需10秒)。我所指的页面就在您登录后 - http://www.160by2.com/Index
[!Snapshot showing the code I get when I click "inspect element" [] 1
答案 0 :(得分:2)
driver.findElement(By.className(" DA-SMS-BTN"。)
您还可以在Chrome中打开应用程序并在浏览器中复制CSS或XPATH:
答案 1 :(得分:1)
您可以先尝试按ID获取表单,然后按类名获取按钮:
wd.find_element_by_id("frmDashboard").find_element_by_class_name("da-sms-btn").click()
答案 2 :(得分:1)
您可以尝试通过其xpath查找元素。 Selenium做得很好:
webdriver.find_element_by_xpath("element xpath").click()
您可以通过转到Chrome上的inspect元素侧栏并右键单击所需元素来轻松找到xpath。右键单击下拉菜单应该有一个选项“copy xpath”。
答案 3 :(得分:1)
我会按如下方式编写一个cssSelector并试试。
button[onclick*='aSMS']
注意,我正在使用*
进行部分搜索答案 4 :(得分:0)
非常感谢您的回复!我实际上能够使用碎片而不是硒来使其工作!这就是我做的 -
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")
出色地完成了!谢谢大家:)