我使用Selenium和Python
嗨,伙计们,我正在做webscraping在拉丁美洲航空公司的网页上,当我试图找到一个webelement内的元素,剪贴板扔给我所有的元素,而不仅仅是该webelement内的元素
在本例中,我将每个月放入“a”变量中,并且只选择实际出现在图像上的三个月,尽管“a”有5个元素,即图像上3之前和之后的2个月,顺便说一句,当我打印文本的5个元素,它tehre是两个null和3个文本,这是月份出现在图像上。在只选择了我想删除的webelement之后,这些webelement就是天,在这个例子中,我在第一个月删除了其中的webelement,但是它最终把每个webelement都扔给了我(我也尝试了ID和其他)153个元素,而我只需要“a”或块中的31个元素。
a = driver.find_elements(By.XPATH, "//table[@class='CalendarMonth_table CalendarMonth_table_1']")
len(a)
5
a = a[1:4]
[<selenium.webdriver.remote.webelement.WebElement (session="9f1eb3d17f3d7e200004db0994fc2ef0", element="0676bf58-035b-4d63-b8d0-61645432d571")>,
<selenium.webdriver.remote.webelement.WebElement (session="9f1eb3d17f3d7e200004db0994fc2ef0", element="55618f44-965b-4f70-8bb5-53a7976f674a")>,
<selenium.webdriver.remote.webelement.WebElement (session="9f1eb3d17f3d7e200004db0994fc2ef0", element="cfd6186a-1301-4b09-a595-91ede08f6387")>]
a = a[0]
b = a.find_elements(By.XPATH, "//td[@tabindex='-1']")
len(b)
153
透镜(B)应该只有31个元素而不是153个。
正如您在上面看到的,我试图找到要从中提取元素/日期的元素/块,但没有成功
1条答案
按热度按时间pjngdqdw1#
当使用XPath从元素(a)中查找元素(B)时,需要在XPath的开头添加一个.“”,
这告诉XPath从该元素开始搜索,而不是从DOM的顶部开始搜索。