【问题标题】:Having problem with the usage of driver find element by (Selenium)(Selenium)使用驱动程序查找元素时遇到问题
【发布时间】:2021-12-31 21:38:56
【问题描述】:
我正在尝试制作一个自动登录网站的机器人。
为了写下我尝试使用的用户名
driver.find_element_by_variable("username").send_keys(username)
当我从网站上查看特定变量时,该变量是两个词,例如 matinput formcontrolname。
在任何其他网站上,如果该变量是一个像 id 这样的词,我只需在 by_ 之后写 id 就可以了,在这种情况下我该怎么办?
【问题讨论】:
标签:
python
selenium
selenium-webdriver
webdriver
【解决方案1】:
Selenium 不允许你使用:
find_element_by_variable()
但您必须使用By 实现中列出的预定义Locator Strategies 之一,如下所示:
-
CLASS_NAME= 类名
driver.find_element(By.CLASS_NAME, "element_classname")
-
CSS_SELECTOR= css 选择器
driver.find_element(By.CSS_SELECTOR, "element_css_selector")
-
ID= id
driver.find_element(By.ID, "element_id")
-
LINK_TEXT= 链接文字
driver.find_element(By.LINK_TEXT, "element_link_text")
-
NAME= 姓名
driver.find_element(By.NAME, "element_name")
-
PARTIAL_LINK_TEXT= 部分链接文字
driver.find_element(By.PARTIAL_LINK_TEXT, "element_partial_link_text")
-
TAG_NAME= 标签名称
driver.find_element(By.TAG_NAME, "element_tag_name")
-
XPATH= xpath
driver.find_element(By.XPATH, "element_xpath")