#python #selenium #click
Вопрос:
Я использую селен, чтобы автоматически понравиться некоторым фотографиям. Таким образом, скрипт ищет слово, нажимает на первую картинку, находит кнопку «Нравится», а затем нажимает на нее. Кнопка «Нажать» работает для того, чтобы нажать на картинку, но не для того, чтобы она понравилась… Я не менял идентификатор, так что имя класса в полном порядке. Я не знаю, откуда может возникнуть проблема.
Вот мой код : «‘
class Interact(Browser): #click on the firt picture in the page def firstpic_click(self): time.sleep(2) first = self.browser.find_element_by_class_name("kIKUG") first.click() #likes curent picture def like_pic(self): time.sleep(2) like = self.browser.find_element_by_class_name("fr66n") soup = bs(like.get_attribute('innerHTML'),'html.parser') if (soup.find('svg')['aria-label'] == 'Like'): like.click() time.sleep(2) #returns and clicks on next picture if any def next_picture(self): time.sleep(2) try: # nex = browser.find_element_by_xpath('//svg[@aria-label="Next"]') next = self.browser.find_elements_by_class_name("wpO6b ") soups = [bs(nextt.get_attribute('innerHTML'),'html.parser') for nextt in next] for i in range(len(soups)): #print(soups[i]) if (soups[i].find('svg')['aria-label'] == 'Next'): next[i].click() return next[i] #nex = self.browser.find_element_by_xpath('//button[@class="wpO6b "]') #time.sleep(1) #return nex except selenium.common.exceptions.NoSuchElementException: return 0 #liking all the next pictures if any def continue_liking(self): while(True): next_el = self.next_picture() if next_el != False: self.like_pic() time.sleep(2) next_el.click() time.sleep(2) else: print("not found") break def word_search(self, search=1): # word = input("what?") word = "lol" #search is the method of search #looking for word in search box if search == 0: search_box = self.browser.find_element_by_xpath("//input[@aria-label='Search Input']") search_box.send_keys("#" word) time.sleep(2) #search_box.send_keys(Keys.RETURN) #search_box.send_keys(Keys.RETURN) search_box.submit() time.sleep(5) #type the website directly if search == 1: self.browser.get("https://www.instagram.com/explore/tags/" word) def liking_pictures(browser0): browser0.implicitly_wait(5) browser = Interact(browser0) browser.word_search() browser.firstpic_click() browser.like_pic() browser.next_picture() browser.continue_liking() time.sleep(10) if __name__ == '__main__': with browse() as browser0: #unsubscribing(browser0) liking_pictures(browser0)
»’ Спасибо
Комментарии:
1. Какие-либо ошибки в консоли ?
2. вы запускали консоль/терминал, чтобы увидеть ошибки? Не ожидайте, что мы запустим его, чтобы получить ошибку. Кроме того, код может корректно работать на наших компьютерах.
3. всегда помещайте полное сообщение об ошибке (начинающееся со слова «Обратная связь») в вопрос (не в комментариях) в виде текста (не скриншот, не ссылка на внешний портал). Есть и другая полезная информация.
4. вы могли бы поместить код с
imports
— так что мы могли бы просто скопировать код, чтобы протестировать его и увидеть проблему в браузере.