在XPath搜索中使用regex有几个类似的问题,但有些问题不是很好
illuminating
对我来说,而其他人
failed
针对我的具体问题。因此,对于可能遇到相同问题的未来用户,我将发布以下问题:
使用Python/Selenium中的一个调用,我希望能够一次刮取下面的所有元素(无需代码格式化即可获得可读性):
/html/body/div[6]/div/div[1]/div/div[3]/div[2]/div[2]/div[**1**]/div/div[2]/div[1]
/html/body/div[6]/div/div[1]/div/div[3]/div[2]/div[2]/div[**2**]/div/div[2]/div[1]
/html/body/div[6]/div/div[1]/div/div[3]/div[2]/div[2]/div[**3**]/div/div[2]/div[1]
/html/body/div[6]/div/div[1]/div/div[3]/div[2]/div[2]/div[**4**]/div/div[2]/div[1]
/html/body/div[6]/div/div[1]/div/div[3]/div[2]/div[2]/div[**5**]/div/div[2]/div[1]
/html/body/div[6]/div/div[1]/div/div[3]/div[2]/div[2]/div[**6**]/div/div[2]/div[1]
请注意,匹配元素的数量在目标网站之间是可变的(可以超过6个,但至少有一个),并且关联的元素
没有
指定的特定ID(其中
不包括
许多的
solutions
根据我的理解,在StackOverflow的其他地方进行了解释)。
我想要的是:
website = driver.get(URL)
html = WebDriverWait(driver, 1).until(EC.presence_of_element_located((By.XPATH, "/html/body/div[6]/div/div[1]/div/div[3]/div[2]/div[2]/div[[0-9]{1}]/div/div[2]/div[1]", regex = True)))
不起作用的是:
website = driver.get(URL)
html = WebDriverWait(driver, 1).until(EC.presence_of_element_located((By.XPATH, "/html/body/div[6]/div/div[1]/div/div[3]/div[2]/div[2]/div[matchers['[0-9]{1}']]/div/div[2]/div[1]")))
TimeoutException: Message:
Screenshot: available via screen
如何在Python+Selenium中清除所有没有ID且其XPath与正则表达式模式匹配的网站元素?