我正在尝试自动从我的Splunk帐户下载某些csv文件。不幸的是,我们没有API访问权限。
因此,我想到了为此使用Selenium Python驱动程序。
我安装了Selenium并将chrome驱动程序放在正确的路径中。
现在我要访问的第一页是Splunk的登录页面,如下所示
这是我使用Selenium的Python初始代码
import selenium
from selenium import webdriver
PATH= "https://splunk.com/account/login"
driver = webdriver.Chrome()
# Open the website
driver.get(path)
username_box = driver.find_element_by_name('username')
# Get the Password box object
password_box = driver.find_element_by_name('password')
# Send id information for login
username_box.send_keys(USERNAME)
password_box.send_keys(PASSWORD)
# Click on the sign in button
sign_in_button=driver.find_element_by_link_text('Sign in')
sign_in_button.click()
在sign_in_button驱动程序之前,它工作得很好。这样就可以打开页面,并从user_name和password_element输入用户名和密码,但是在检索Sign In元素对象时,它无法检索该对象并引发错误:
NoSuchElementException: Message: no such element: Unable to locate element: {"method":"link text","selector":"Sign in"}
(Session info: chrome=71.0.3578.98)
这是我在Chrome上进行检查时相应的“登录”按钮的HTML
因此,如您所见,它只有类和文本。没有名称和ID属性。
所以我先尝试了
driver.find_element_by_link_text('Sign in')
然后
driver.find_element_by_class_name('splButton-primary btn')
,但无法检索“登录”按钮对象。
由于它无法单击和登录。
有人可以帮忙找回有关“登录按钮”的问题吗?
谢谢
答案 0 :(得分:2)
var regex = new Regex(@"^[.]?[^.]+$", RegexOptions.IgnoreCase);
不是链接文本,而是Sign in
属性,请尝试
value
答案 1 :(得分:1)
我无法访问该网站进行尝试,但是有一些建议... 首先,您的班级名称包括两个班级,请尝试仅使用一个班级:
driver.find_element_by_class_name('splButton-primary')
或者,尝试专门查找输入:
driver.find_element_by_css_selector('input.splButton-primary')