селен find_element_by_xpath text () не получает результат - PullRequest
0 голосов
/ 06 февраля 2020

Привет, я пытался получить текст со страницы, но не смог получить селен, вот мой код, и я хочу скопировать только текст с веб-страницы. Мой другой элемент xath работает только с этой ошибкой получения, пожалуйста, помогите мне решить эту проблему здесь - экран выстрел https://prnt.sc/qymf1s

    from selenium import webdriver 
    from selenium.webdriver.chrome.options import Options
    from selenium.webdriver.support.ui import WebDriverWait 
    from selenium.webdriver.support import expected_conditions as EC 
    from selenium.webdriver.common.keys import Keys 
    from selenium.webdriver.common.by import By 
    from selenium.webdriver.common.action_chains import ActionChains
    from urllib.parse import urlparse
    import urllib.request
    import mysql.connector
    import sys, os
    import requests
    css_album    = '/html/body/div[3]/div[2]/div[1]/div/article/div/div/div[2]/p/text()[1]'
    driver = 0 

    def openbrowser():
    global driver
    xoptions = Options()
    #xoptions.add_argument("--headless") # Runs Chrome in headless mode.
    xoptions.add_argument('--no-sandbox') # Bypass OS security model
    xoptions.add_argument('--disable-gpu')  # applicable to windows os only
    xoptions.add_experimental_option("excludeSwitches",["ignore-certificate-errors"])
    xoptions.add_argument('disable-infobars')
    xoptions.add_argument("--disable-extensions")
    try:
      driver = webdriver.Chrome(options=xoptions)
      driver.set_window_size(55, 55)
    except:
      try:
        driver.close()
      except:
        print('Error in opening chrome')

      if len (sys.argv) <= 1:
    print('Please provide a URL')
    sys.exit()



     openbrowser()
       userurl = sys.argv[1]
       driver.get(userurl)
        wait = WebDriverWait(driver, 50000)
album = '';
try:
   album = driver.find_element_by_xpath(css_album).text
   print('Album:', album);
except:
   print('Error in album')
driver.close()

Ответы [ 2 ]

0 голосов
/ 07 февраля 2020

вы можете попробовать использовать следующий xpath: driver.findElement (By.xpath ("// div [@ class = 'top_ad'] // follow-sibling :: p")). GetText ()

это вернет вас: Song - Шейх Певцы - Karan Aujla Музыканты - Deep Jandu Лирики - Karan Aujla

Надеюсь, это поможет.

0 голосов
/ 06 февраля 2020

Мне не удалось получить доступ к элементу, который вы пытаетесь получить, с помощью используемого вами xpath. Я смог получить его с помощью этого xpath:

/html//div[@id='content']/article//div[@class='width:100%;position:relative']/div[2]/p

Одна проблема заключается в том, что все 4 строки текста находятся внутри этого одного элемента, поэтому, если вы получите текст, вы получите все это. Вот как выглядит html:

<p style="">Song – Sheikh<br>
Singers – Karan Aujla<br>
Musicians – Deep Jandu<br>
Lyricists – Karan Aujla
</p>

Вы можете получить текст, а затем взять подстроку текста песни, которую вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...