当前位置: 首页 > 知识库问答 >
问题:

无法使用python selenium通过xpath查找元素

微生乐
2023-03-14

我想使用selenium单击一个按钮,并在站点的下拉日期选择器中选择该按钮。

我希望单击的按钮以黄色突出显示

http://covid.gov.pk/stats/ict

我正在使用以下xpath。

//*[@id=“datepicker-1361-7562-title”]/strong

这是我正在使用的代码

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from datetime import date
import time

#calculating days from first day 
d1 = date(2020, 3, 10)
dCurrent = date.today()
daysElapsed = int((dCurrent - d1).days)

#setting up driver and fetching website
driver = webdriver.Chrome()
driver.get('http://covid.gov.pk/stats/ict')

#wait for page and resources to load
WebDriverWait(driver, 25).until(EC.invisibility_of_element((By.XPATH, "//div[@id=\"preloader\"]")))
WebDriverWait(driver, 15).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH, '//*[@id="app"]/div[2]/iframe')))


driver.find_element_by_xpath('//*[@id="body"]/div/div/div[1]/div[2]/div/div[1]/div[1]/div[1]/div/lego-report/lego-canvas-container/div/file-drop-zone/span/content-section/canvas-component[29]/div/div/div/div/ga-date-range-picker/lego-date-duration-control/control-layout-wrapper/button/div').click()
time.sleep(3)
driver.find_element_by_xpath('//*[@id="datepicker-1361-7562-title"]/strong').click()

问题是,我可以点击下拉菜单上的其他元素,但不能点击这个按钮。

运行代码时遇到的错误。

check_response提高exception_class(消息,屏幕,堆栈跟踪)selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法定位元素:{"方法":"xpath","选择器":"//*[@id="datepicker-1361-7562-title"]/strong"}(会话信息: chrome=81.0.4044.122)

我一直在尝试解决这个问题,但似乎无法指出我可能做错了什么,任何帮助将不胜感激。

共有1个答案

曾光远
2023-03-14

切换到框架并点击日历上的第一部分“开始日期”后,您可以找到带有以下选择器的年份按钮

driver.find_element_by_xpath('//div[@ng-model='$ctrl.calendarDateRange.startDate']//table[@class='uib-daypicker']//button[contains(@id, 'datepicker-')]').click()

如果您希望单击 //div 的“结束日期”部分更改路径[@ng模型='']

 类似资料:
  • 问题内容: 以下是使用Java的WebDriver代码段: 执行代码后,出现以下异常: 线程“主”中的异常org.openqa.selenium.NoSuchElementException:无法找到元素:{“方法”:“ xpath”,“选择器”:” // html / body / div [2] / span / center / form / table / tbody / tr / td

  • 请帮助我,我正在尝试选择一个图片,这是一个链接(一个网站上的培训师) 这是我的代码:

  • 我会收到以下错误消息: el=self.driver.find_element_by_xpath(element_query)文件“/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py”,第393行,在find_element_by_xpath中返回self.find_element(by=by.

  • 我是DOM查询的新手,我想知道是否可以通过Xpath直接查询DOM元素,类似于下面提到的代码? 谢谢

  • 我试图通过xpath获取一个输入元素,但是return语句是false。 当我试图获取标签(它是输入的唯一兄弟)时,它返回true。我也尝试通过输入类型[@type=“checkbox”]获取它,但也失败了。 null

  • 问题内容: 在我的网页中,有一个名为的。 我如何找到它? 问题答案: 此选择器应该可以工作,但是如果您用合适的标记替换它,效率会更高: 或者,由于我们知道所搜索的元素是: 但是,因为这也可以匹配诸如或的情况,所以注释中提供的@Tomalak版本 更好 : 如果您真的想确定它可以正确匹配,则还可以使用normalize-space函数清除类名周围的杂散空格字符(如@Terry所述): 请注意,在所有