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"
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