Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Selenium和python在网页上查找文本,然后直接在其下方获取文本_Python_Selenium_Selenium Webdriver_Web Scraping_Xpath_Selenium3_Selenium4 - Fatal编程技术网

使用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')