在Python中使用Selenium查找登录按钮ID

时间:2017-03-19 16:13:47

标签: python selenium discord

我正在尝试使用Python中的selenium登录Discord,以便稍后我可以运行一些搜索并返回数据。

到目前为止,这就是我所拥有的:

# Root logger option
log4j.rootLogger=INFO, stdout, file

# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n


# Redirecting to Tomcat Logger

log4j.appender.file.File=${catalina.home}logs/logging.log


# Redirect log messages to a log file, support file rolling.

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\log\\logging.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

下一步是使用“登录”按钮提交ID和密码,但我不知道如何按名称查找该元素。

from selenium import webdriver
browser = webdriver.Chrome(executable_path='C:\\xyz\\chromedriver_win32\\chromedriver.exe')

browser.get('https://discordapp.com/login')
username = browser.find_element_by_id("register-email")
username.send_keys("xyz@abc.net")
password = browser.find_element_by_id("register-password")
password.send_keys("password123")

如何以编程方式找到该元素?

2 个答案:

答案 0 :(得分:2)

看起来Login按钮元素的名称属性等于' login',因此在这种情况下,您将无法使用{{1}找到它声明。

如果你正在使用谷歌浏览器,你可以使用开发人员工具(Windows上的F12,我相信,Mac上的CMD + Shift + I)来查找DOM树中的元素。如果它有名称属性,您可以在此处找到它。在这种情况下,它没有,但是我们能够右键单击DOM树中的元素,并且可以提取另一种查找元素的方法,例如“复制XPath”和“#39;复制XPath'或者'复制选择器'。

清理提取的XPath,您可以使用以下命令单击元素:

browser.find_element_by_name("login").click()

答案 1 :(得分:0)

如果您使用F12打开开发人员工具,您可以将鼠标巡洋器放在html中的元素上,它们将在UI中突出显示。

登录按钮具有课程btn-primary

browser.find_element_by_class_name("btn-primary").click()