使用Selenium和python在网页上查找文本,然后直接在其下方获取文本
我很抱歉,如果这是一个糟糕的解释,但我不知道如何更好地表达它使用Selenium和python在网页上查找文本,然后直接在其下方获取文本,python,selenium,selenium-webdriver,web-scraping,xpath,selenium3,selenium4,Python,Selenium,Selenium Webdriver,Web Scraping,Xpath,Selenium3,Selenium4,我很抱歉,如果这是一个糟糕的解释,但我不知道如何更好地表达它 从图像中,您可以看到一个名为UPC的文本,它的正下方是一个数字。我想直接获得UPC下方的数字。我想通过在网站上搜索文本“UPC”找到它,如果可能的话,直接在下面找到数字。如果您是此页面的所有者,最好使用唯一元素id来定位它们。无论如何,还有另一个解决办法。 正如在中所写的,您可以使用css选择器,只使用“下一个元素”css选择器“~”。它可以是这样的: content = driver.find_element_by_css_sel
从图像中,您可以看到一个名为UPC的文本,它的正下方是一个数字。我想直接获得UPC下方的数字。我想通过在网站上搜索文本“UPC”找到它,如果可能的话,直接在下面找到数字。如果您是此页面的所有者,最好使用唯一元素id来定位它们。无论如何,还有另一个解决办法。 正如在中所写的,您可以使用css选择器,只使用“下一个元素”css选择器“~”。它可以是这样的:
content = driver.find_element_by_css_selector('div:contains("UPC") ~ div')
您可以阅读有关CSS选择器的更多信息
祝你好运
更新:正确答案是:
driver.find_element(By.XPATH, '//div[text()="UPC"]/following-sibling::div')
注意:不推荐使用命令。请改用find_element()
要打印号码
840….
,您可以使用以下任一选项:
- 使用方法和
:xpath
print(driver.find_element_by_xpath("//div[contains(., 'UPC')]//following-sibling::div[1]").text)
print(driver.find_element(By.XPATH, "//div[contains(., 'UPC')]//following-sibling::div[1]").text)
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[contains(., 'UPC')]//following-sibling::div[1]"))).text)
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[contains(., 'UPC')]//following-sibling::div[1]"))).text)
- 使用方法和
:xpath
print(driver.find_element_by_xpath("//div[contains(., 'UPC')]//following-sibling::div[1]").text)
print(driver.find_element(By.XPATH, "//div[contains(., 'UPC')]//following-sibling::div[1]").text)
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[contains(., 'UPC')]//following-sibling::div[1]"))).text)
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[contains(., 'UPC')]//following-sibling::div[1]"))).text)
理想情况下,您需要为\u元素\u located()的
可见性\u进行归纳,并且您可以使用以下任一选项:
- 使用方法和
xpath
:
print(driver.find_element_by_xpath("//div[contains(., 'UPC')]//following-sibling::div[1]").text)
print(driver.find_element(By.XPATH, "//div[contains(., 'UPC')]//following-sibling::div[1]").text)
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[contains(., 'UPC')]//following-sibling::div[1]"))).text)
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[contains(., 'UPC')]//following-sibling::div[1]"))).text)
- 使用方法和
xpath
:
print(driver.find_element_by_xpath("//div[contains(., 'UPC')]//following-sibling::div[1]").text)
print(driver.find_element(By.XPATH, "//div[contains(., 'UPC')]//following-sibling::div[1]").text)
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[contains(., 'UPC')]//following-sibling::div[1]"))).text)
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[contains(., 'UPC')]//following-sibling::div[1]"))).text)
您可以在中找到相关的讨论
我收到以下错误“selenium.common.exceptions.InvalidSelectorException:消息:无效选择器:指定了无效或非法的选择器”确定,尝试此:驱动程序。查找元素(By.XPATH,//div[text()=“UPC”]/以下同级::div')