不了解驱动程序如何无法定位元素

2024-05-07 13:37:28 发布

您现在位置:Python中文网/ 问答频道 /正文

这里是网站:https://seekingalpha.com/news/3580581-docusign-eps-beats-0_02-beats-on-revenue

我正在尝试用网络垃圾处理EPS、EPS、GEPS、GEPS和收入

List1 = driver.find_element_by_xpath("""/html/body/div[2]/div[1]/div/main/div[2]/div[3]/div[2]/section[1]/div/div/div[3]/div/div/div[1]/ul/li[1]/text()[2]""")

这将返回无法定位元素

这也不起作用

List1 = driver.find_element_by_xpath("""/html/body/div[2]/div[1]/div/main/div[2]/div[3]/div[2]/section[1]/div/div/div[3]""")

我不认为这是由于网站被加载。我把时间。睡眠时间设为10秒,它也不起作用。我不知道如何浏览网站,找到包含我想要的信息的列表


Tags: divby网站mainhtmldriversectionbody
2条回答

要打印所需文本,您必须为visibility_of_element_located()导出WebDriverWait,并且您可以使用以下Locator Strategies之一:

  • 打印DocuSign(纳斯达克股票代码:DOCU):第一季度非公认会计准则每股收益0.12美元,比第一季度每股收益0.02美元高;GAAP每股收益为-0.26美元,未命中率为0.03美元

    driver.get('https://seekingalpha.com/news/3580581-docusign-eps-beats-0_02-beats-on-revenue')
    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@data-test-id='content-container']/ul/li"))).text)
    
  • 打印0.12美元的第一季度非公认会计原则每股收益:

    print(driver.execute_script('return arguments[0].childNodes[2].textContent;', WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@data-test-id='content-container']/ul/li")))).strip())
    
  • 按$0.02打印节拍:

    print(driver.execute_script('return arguments[0].childNodes[3].textContent;', WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@data-test-id='content-container']/ul/li")))).strip())
    
  • 打印-0.26美元的公认会计准则每股收益:

    print(driver.execute_script('return arguments[0].childNodes[4].textContent;', WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@data-test-id='content-container']/ul/li")))).strip())
    
  • 按$0.03打印未命中:

    print(driver.execute_script('return arguments[0].childNodes[5].textContent;', WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@data-test-id='content-container']/ul/li")))).strip())
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    

非常奇怪的问题。我能够通过以下代码获取数据:

driver = webdriver.Chrome(path_to_chrome_driver)
driver.get("https://seekingalpha.com/news/3580581-docusign-eps-beats-0_02-beats-on-revenue")
time.sleep(40)
driver.execute_script("window.scrollTo(0, 400)") 
time.sleep(20)
data = driver.find_elements_by_xpath('/html/body/div[2]/div[1]/div/main/div[2]/div[3]/div/section[1]/div/div/div[3]/div/div/div[1]/ul/li[1]')
for dat in data:
    print(dat.text)

除非用户进行一些滚动(可能是出于优化目的),否则页面似乎不会完全加载。希望这对你也有用

相关问题 更多 >