2016-05-25 2 views
-4

Я пытался отправить нажмите на кнопку Reddit upvote с использованием селена в питоне, но я не могу выбрать кнопку upvote «стрелка вверх для входа-требуется доступ-необходимый»Выберите кнопку upvote на Reddit с селеном питоном

HTML код upvote и downvote кнопок:

<div class="arrow up login-required access-required" data-event-action="upvote" role="button" aria-label="upvote" tabindex="0"></div> 
 
<div class="score likes">•</div> 
 
<div class="score unvoted">•</div> 
 
<div class="score dislikes">•</div> 
 
<div class="arrow down login-required access-required" data-event-action="downvote" role="button" aria-label="downvote" tabindex="0"></div>

код, я попытался было

target = driver.find_element_by_xpath("//button[@aria-label='upvote'") 
 
target.click()

target = driver.find_element_by_class_name('midcol unvoted') 
 
target.click()

Но ни один из них не появляется на работе.

ответ

2

Вы пытаетесь нажать <div class="arrow up login-required access-required" data-event-action="upvote" role="button" aria-label="upvote" tabindex="0"></div>, но оба указанных вами селектора выглядят несвязанными. Ваш xpath try указывает кнопку (вы хотите div), и ваша попытка «по имени класса» не ссылается ни на что в вашем примере.

Это должно работать нормально для примера вы предоставили:

driver.find_element_by_css_selector("div.arrow.up").click 

Однако многие страницы на Reddit несколько стрел upvote, так что вам может понадобиться, чтобы сделать ваш селектор более конкретно работать на реальной странице.

Смежные вопросы