使用Selenium和Python通过链接文本定位元素报错,求修复建议
问题描述
我是Python新手,正在通过网上示例学习。其中一个示例用到Selenium库,原示例使用find_element_by_link_text方法,但该方法似乎已不存在,我不得不改用find_element方法。我编写了如下代码,Chrome浏览器能正常打开,但find_element部分报错,希望有人能提供修复建议。
代码如下:
from selenium import webdriver browser = webdriver.Chrome() browser.get("https://github.com") signin_link = browser.find_element("LINK_TEXT", "Sign in") print(signin_link)
修复方案
- Selenium 4及以上版本中,
find_element方法的定位参数需要通过By类的常量传入,不能直接传字符串。需先导入By类。 - 修改后的正确代码:
from selenium import webdriver from selenium.webdriver.common.by import By # 导入By类 browser = webdriver.Chrome() browser.get("https://github.com") signin_link = browser.find_element(By.LINK_TEXT, "Sign in") # 使用By类常量替代字符串 print(signin_link)
- 也可以用键值对形式传参,写法更清晰:
signin_link = browser.find_element(by=By.LINK_TEXT, value="Sign in")
内容的提问来源于stack exchange,提问作者Janaka
相关产品推荐
相关产品推荐

