使用 selenium WebDriver 为站点制作自动机。但是由于某种原因,xpath 带有下划线。有人知道这是什么原因吗?

Using selenium WebDriver to make an automaton for a site. However for some reason the xpath is underlined. Anyone know the reason for this?

嘿 SO 社区再次,我 运行 在尝试自动化某些东西时遇到了一个小问题,所以我正在看这个 YouTube 教程,我知道没有人会经历这个麻烦为了检查这个人在大约 5:50 处做了什么以供参考,他复制了 xpath 并将其粘贴到一边,但是当我这样做时,它会带有红色下划线。这是我所做的


from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome(executable_path='/Users/name/Desktop/Selenium/chromedriver')

url = 'https://healthscreening.schools.nyc/?type=G'

driver.get(url)

//*[@id="guest_last_name"]

//*[@id="guest_email"]

//*[@id="btnDailyScreeningSubmit"]/button

driver.find_element_by_xpath('')...

/*[@id=""] 部分全部用红色下划线标出 有谁知道问题的原因是什么?谢谢

你没有完成视频,是吗?

你出现红色下划线的原因是你的 IDE 检测到它们是无效的字符串,它们需要用引号括起来(单引号,因为字符串中已经有双引号)。

此外,如果你再看一下视频,你会发现他只是复制了它,因为他不想再次返回 Inspect 屏幕来获取 XPATH。

后来,他写道:

driver.find_element_by_xpath('//*[@id="guest_last_name"]')

代码应该类似于:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome(executable_path='/Users/name/Desktop/Selenium/chromedriver')

url = 'https://healthscreening.schools.nyc/?type=G'

driver.get(url)


last_name = driver.find_element_by_xpath('//*[@id="guest_last_name"]')
email = driver.find_element_by_xpath('//*[@id="guest_email"]')
button = driver.find_element_by_xpath('//*[@id="btnDailyScreeningSubmit"]/button')

# later you can click on these elements, pass characters to it with send_keys etc.

一个在观看教程时真正有用的建议。不要在讲师打字时跟着打字。

完整观看并尝试理解其中的概念。然后自己动手,不看。如果你卡住了,你当然可以看一眼,但重点是根据你记得的内容输入代码。

然后你可以编写自己的代码,自动执行一些你自己的事情。你会遇到错误,你会修复它,你会学到更多。

你做得很好!祝你一路顺风。