Подтвердите, нужно ли писать комментарии с помощью xpath - PullRequest
0 голосов
/ 28 мая 2020

Не могли бы вы сделать пример с сайтом? Я хочу игнорировать сообщения с комментариями и просто щелкать те, которые не содержат комментариев.

from selenium import webdriver
import time

path = "C:\chromed\chromedriver.exe"
driver = webdriver.Chrome(path) #path
'''

'''
driver.get("http://cineaste.co.kr/") #url
time.sleep(0.5)

postclick = driver.find_element_by_xpath("//h3[.='영화이야기']/following::div[@class='widget-small-box'][1]//li[@class='ellipsis'][not(contains(.,'+'))]") #로그인창 활성화
postclick.click()


driver.close()

Я пробовал это, но произошла ошибка.

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//h3[.='영화이야기']/following::div[@class='widget-small-box'][1]//li[@class='ellipsis'][not(contains(.,'+'))]"}
  (Session info: chrome=81.0.4044.138)

Я хочу нажать на сообщение, у которого еще нет комментариев. И я хочу пропускать посты с комментариями. Я все еще новичок. Помогите мне.

Ответы [ 2 ]

0 голосов
/ 28 мая 2020

Вам понадобятся эти импорты:

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

Пример с первой записью без комментариев в блоке "mov ie -reviews":

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//h3[.='영화감상평']/following::div[@class='widget-small-box'][1]//li[@class='ellipsis'][not(contains(.,'+'))][1]"))).click()

MR

0 голосов
/ 28 мая 2020

Элемент, который вы ищете, недоступен. Вам нужно воссоздать Xpath. Созданный вами Xpath неверен. См. Следующее изображение: - Xpath you enetered

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