Sajan Jain
 · Company Secretary

Getting error in automation of login process

Hello friends

I applied the following code to automate the login process but got error

from fyers_api import accessToken
from fyers_api import fyersModel
from pyotp import TOTP
from selenium import webdriver
import time



client_id = "1AVK1G5WXN-100"
secret_key = "0A8TI52QD8"
redirect_uri = "https://www.google.co.in/"

response_type = "code"
state = "sample_state"
grant_type = "authorization_code"


username="XXXXXXX"
totp="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
pin1="1"
pin2="2"
pin3="3"
pin4="4"


session = accessToken.SessionModel(
    client_id=client_id,
    secret_key=secret_key, 
    redirect_uri=redirect_uri, 
    response_type=response_type, 
    grant_type=grant_type
)

response = session.generate_authcode()
print(response)


def generate_auth_code():
    session = accessToken.SessionModel(
    client_id=client_id,
    secret_key=secret_key, 
    redirect_uri=redirect_uri, 
    response_type=response_type, 
    grant_type=grant_type
    )
    response = session.generate_authcode()

    driver=webdriver.Chrome()
    driver.get(response)
    time.sleep(20)
   
    driver.find_element_by_xpath('//*[@id="fy_client_id"]').send_keys(username)
    driver.find_element_by_xpath('//*[@id="clientIdSubmit"]').click()
    time.sleep(4)
    
    t=TOTP(totp).now()
    print(t)
    driver.find_element_by_xpath('//*[@id="first"]').send_keys(t[0])
    driver.find_element_by_xpath('//*[@id="second"]').send_keys(t[1])
    driver.find_element_by_xpath('//*[@id="third"]').send_keys(t[2])
    driver.find_element_by_xpath('//*[@id="fourth"]').send_keys(t[3])
    driver.find_element_by_xpath('//*[@id="fifth"]').send_keys(t[4])
    driver.find_element_by_xpath('//*[@id="sixth"]').send_keys(t[5])
    driver.find_element_by_xpath('//*[@id="confirmotpsubmit"]').click()
    time.sleep(4)

    driver.find_element_by_id("verify-pin-page").find_element_by_id("first").send_keys(pin1)
    driver.find_element_by_id("verify-pin-page").find_element_by_id("second").send_keys(pin2)
    driver.find_element_by_id("verify-pin-page").find_element_by_id("third").send_keys(pin3)
    driver.find_element_by_id("verify-pin-page").find_element_by_id("fourth").send_keys(pin4)
    driver.find_element_by_xpath('//*[@id="verifyPinSubmit"]').click()
    time.sleep(20)

    newurl=driver.current_url
    auth_code=newurl[newurl.index('auth_code=')+10:newurl.index('&state')]
    driver.quit()
    return auth_code


auth_code=generate_auth_code()
print(auth_code)

session.set_token(auth_code)
response = session.generate_token()
access_token=response["access_token"]

a=open("access.txt",'w')
a.write(access_token)
a.close()

print(access_token)

error

PS E:\E_Trading\2. Option\Data from Python> & "C:/Users/SAJAN JAIN/AppData/Local/Programs/Python/Python311/python.exe" "e:/E_Trading/2. Option/Data from Python/new.py"

https://api.fyers.in/api/v2/generate-authcode?client_id=1AVK1G5WXN-100&redirect_uri=https%3A%2F%2Fwww.google.co.in%2F&response_type=code&state=None

DevTools listening on ws://127.0.0.1:54573/devtools/browser/6d039445-d4c9-40fd-8964-40bb9de3fe7f

Traceback (most recent call last):

File "e:\E_Trading\2. Option\Data from Python\new.py", line 85, in <module>

auth_code=generate_auth_code()

^^^^^^^^^^^^^^^^^^^^

File "e:\E_Trading\2. Option\Data from Python\new.py", line 57, in generate_auth_code

driver.find_element_by_xpath('//*[@id="fy_client_id"]').send_keys(username)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^

AttributeError: 'WebDriver' object has no attribute 'find_element_by_xpath'

PS E:\E_Trading\2. Option\Data from Python>

please help in resolving issue


8 replies