使用Selenium WebDriver时粘贴的XPath出现红色下划线,是什么原因?
问题原因说明
注释语法错误
Python的单行注释规则是用#作为开头标识,你当前直接把复制的XPath以//开头裸写在代码中,//并不是Python的合法注释符号,属于语法错误,因此IDE会给这部分内容标注红色下划线提示报错。如果你只是想临时存储XPath备用,只需要在每一行XPath前添加#即可消除语法报错。无效的独立代码行
XPath本身是定位表达式,不能作为独立的代码行直接在Python中运行,正确的用法是将XPath作为字符串参数传入Selenium的元素定位方法中。另外需要注意,目前Selenium 4及以上版本已经废弃了find_element_by_xpath的写法,推荐使用新的定位规范,需要先导入By类。
正确代码示例
from selenium import webdriver from selenium.webdriver.common.keys import Keys # 导入定位需要的By类 from selenium.webdriver.common.by import By driver = webdriver.Chrome(executable_path='/Users/name/Desktop/Selenium/chromedriver') url = 'https://healthscreening.schools.nyc/?type=G' driver.get(url) # 把XPath作为参数传入定位方法即可正常使用 last_name_input = driver.find_element(By.XPATH, '//*[@id="guest_last_name"]') email_input = driver.find_element(By.XPATH, '//*[@id="guest_email"]') submit_btn = driver.find_element(By.XPATH, '//*[@id="btnDailyScreeningSubmit"]/button') # 后续可对定位到的元素执行输入、点击等操作 # 示例:last_name_input.send_keys("测试姓氏")
内容的提问来源于stack exchange,提问作者deepsingh
相关产品推荐
相关产品推荐

