【问题标题】:Selenium will not find my elementsSelenium 找不到我的元素
【发布时间】:2016-04-09 18:49:40
【问题描述】:

firebug

console

我有一个项目,我选择 Selenium 打开 1-5 个链接。它停在第三个链接。对于之前成功的请求,我采用了相同的方法。在脚本继续在我的控制台中运行之前,我已经允许了 17 秒并观察了页面加载。我只是不确定为什么它找不到这个链接,我希望这是我忽略的东西......

from selenium import *
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
import csv
import time

username = "xxxxxxx"
password = "xxxxxxx"
driver = webdriver.Firefox()
driver.get("https://tm.login.trendmicro.com/simplesaml/saml2/idp/SSOService.php")
assert "Trend" in driver.title
elem1 = driver.find_element_by_class_name("input_username")
elem2 = driver.find_element_by_class_name("input_password")
elem3 = driver.find_element_by_id("btn_logon")
elem1.send_keys(username)
elem2.send_keys(password)
elem3.send_keys(Keys.RETURN)
time.sleep(7)
assert "No results found." not in driver.page_source
elem4 = driver.find_element_by_css_selector("a.float-right.open-console")
elem4.send_keys(Keys.RETURN)
time.sleep(17)
elem5 = driver.find_element_by_tag_name("a.btn_left")
elem5.send_keys(Keys.RETURN)

【问题讨论】:

标签: python selenium elements


【解决方案1】:

嗯,原因之一是 elem5 正在通过标签名称查找元素,但您正在向它传递一个 css 标签。 “a.btn_left” 不是 html 标记名称,因此您的脚本永远不会真正找到它,因为它根本不存在于 dom 中。

您要么需要通过 css_selector 找到它,要么通过 Xpath 更好地找到它。如果你想让它尽可能可靠和更多的未来证明,我总是尽可能使用 Xpath 尝试在具有至少 2 个描述符的页面上查找元素。

改变这个:

elem5 = driver.find_element_by_tag_name("a.btn_left")

到这里:

elem5 = driver.find_element_by_css_selector("a.btn_left")

你几乎不会使用 tag_name,主要是因为它总是会检索你传递给它的第一个标签,所以“a”总是会找到第一个链接并点击它,但是你的不存在。

【讨论】:

    【解决方案2】:

    我最终用这段代码解决了这个问题。我将时间增加到 20 秒,信不信由你,我确实尝试过通过 css 查找,我实际上离开了 a.btn_left,并循环浏览了所有元素,但它们都不起作用,幸运的是,我可以通过 tab 和 key 访问功能,所以现在可以工作了。

    time.sleep(20)
    driver.get("https://wfbs-svc-nabu.trendmicro.com/wfbs-svc/portal/en/view/cm")
    elem5 = driver.find_element_by_link_text("Devices")
    elem5.send_keys(Keys.ENTER)
    

    【讨论】:

      猜你喜欢
      • 2019-01-02
      • 2021-03-14
      • 1970-01-01
      • 1970-01-01
      • 2021-12-17
      相关资源
      最近更新 更多