Python 3.x Xpath错误:没有这样的元素:无法定位。将sublime文本编辑器与最新版本的chrome80及其Web驱动程序配合使用
我曾尝试通过XPath多种方式查找元素,但未能找到 代码: HTML:Python 3.x Xpath错误:没有这样的元素:无法定位。将sublime文本编辑器与最新版本的chrome80及其Web驱动程序配合使用,python-3.x,selenium-webdriver,automation,Python 3.x,Selenium Webdriver,Automation,我曾尝试通过XPath多种方式查找元素,但未能找到 代码: HTML: 您的xpath正在查找标记为href的元素,该元素不存在。所讨论的元素具有标记a。如果没有看到HTML的其余部分,我无法100%确定,但是根据您发布的内容,这个xpath可能会起作用: "//a[@text()='3:00 PM' and @data-day_ident='2021-05-25']" 编辑:如果您正试图从页面上显示的选项/链接中删除时间/日期,则以下操作应有效: elements = d
您的xpath正在查找标记为
href
的元素,该元素不存在。所讨论的元素具有标记a
。如果没有看到HTML的其余部分,我无法100%确定,但是根据您发布的内容,这个xpath可能会起作用:
"//a[@text()='3:00 PM' and @data-day_ident='2021-05-25']"
编辑:如果您正试图从页面上显示的选项/链接中删除时间/日期,则以下操作应有效:
elements = driver.find_elements_by_css_selector('a.res-timeslot-select')
for element in elements:
print(element.text + ' on ' + element.get_attribute('data-day_indent'))
要根据日期和时间使用XPath选择时间段,可以使用以下XPath选择5月23日的唯一可用时间段:
driver.find_elementss_by_xpath('//a[@data-day_ident='2021-05-23']')
要选择5月24日的0:00
时段,您可以使用以下选项:
//a[@data-day_ident='2021-05-24' and (text()='0:00')]
要选择5月24日的1:30
时段,请使用此
//a[@data-day_ident='2021-05-24' and (text()='1:30')]
等等。我希望现在可以清楚地知道如何根据日期和时间选择其他时段。您发布的定位器有两个问题
//href[@text()='3:00 PM' and @data-day_ident='2021-05-25']
^ href is an attribute of an A tag, not an element
^ remove @
href
。元素是一个标记@text()
应该是text()
。@
符号表示属性,但text()
是一种方法//a[text()='3:00 PM' and @data-day_ident='2021-05-25']
^ A is the element
这个问题是插槽当前不可用。目前唯一可用的插槽是5/23下午1:30、5/24凌晨12:00和5/24凌晨1:30。您的定位器正在查找5/25下午3:00。如果你改成
//a[text()='1:30 PM' and @data-day_ident='2021-05-23']
它会起作用。请通过添加解释来澄清您的问题。另外,请编辑/格式化您的问题,使其易于查看代码、文本等。您好,我已尽力解释。不,仍然是相同的错误。这是html。如果您在任何时间(如下午3:00)进行检查,请预留该时间。您可以查看他们的html代码。我正在尝试获取下午3:00或任何给定时间的链接。您提供的链接中不存在该元素。如果您试图获取文本,则不应使用它来标识元素。也就是说,我在回答中添加了一个编辑,可以从每个链接元素中获取文本。谢谢,但是如果我们通过css选择器进行选择,则(.res timeslot select)在所有日期中都很常见。这就是为什么我想使用Xpath获取特定时间。请帮助我为给定日期的特定时间段创建相对Xpath。我选择2021年5月25日,因为我之前写了几行代码将我登录到他们的系统,这就是为什么我可以访问更多的时间段。没问题,但我看到只有3个可用时间段:1个用于5月23日,2个用于5月24日。要查看更多信息,需要在我没有凭据时登录。我已更新了我的答案。我希望现在一切都清楚了?我们可以在不登录的情况下看到3个以上的可用插槽。要查看更多信息,需要注册并登录。主题启动者已登录,因此他可以看到比这3个插槽多得多的内容。@Prophet我仍看到3个插槽未登录,但这与问题无关。关键是要纠正两个错误,定位器才能正常工作。
//href[@text()='3:00 PM' and @data-day_ident='2021-05-25']
^ href is an attribute of an A tag, not an element
^ remove @
//a[text()='3:00 PM' and @data-day_ident='2021-05-25']
^ A is the element
//a[text()='1:30 PM' and @data-day_ident='2021-05-23']