i am trying to make 5-star bot i have already done half work for getting login with gmail only place i am stuck is when it come to clicking on pop up window asking for starts and writing review i can't even click on cancel button.The pop up appears to be inside another iframe (#document)
My code
import time
import undetected_chromedriver as uc
from selenium.webdriver.common.keys import Keys
def login_Undetected():
username = 'ABC@gmail.com'
password ='ABC'
driver = uc.Chrome()
driver.get('https://accounts.google.com/ServiceLogin')
time.sleep(2)
driver.find_element_by_xpath('//input[@type="email"]').send_keys(username)
time.sleep(2)
driver.find_element_by_xpath('//*[@id="identifierNext"]').click()
time.sleep(2)
driver.find_element_by_xpath('//input[@type="password"]').send_keys(password)
time.sleep(2)
driver.find_element_by_xpath('//*[@id="passwordNext"]').click()
time.sleep(2)
driver.get('https://www.google.com/search?q=Flower%20shops&oq=flower+shops&aqs=chrome.0.69i59j69i57j0i271l3j69i60j69i61j69i60.1987j0j7&sourceid=chrome&ie=UTF-8&dlnr=1&sei=DW5lYsD7DNWEur4Pr8CT2A0&tbs=lf:1,lf_ui:10&tbm=lcl&sxsrf=APq-WBtzTXMsCEG8-8jHuqbpamowkj3Nlg:1650814482370&rflfq=1&num=10&rldimm=7685376553708120908&lqi=CgxGbG93ZXIgc2hvcHNIw4-b4dKtgIAIWhQQABABGAAiDGZsb3dlciBzaG9wc5IBD2Zsb3dlcl9kZXNpZ25lcpoBI0NoWkRTVWhOTUc5blMwVkpRMEZuU1VOdFgzVlFRMEpCRUFFqgEUEAEqECIMZmxvd2VyIHNob3BzKAA&phdesc=XQ9OeXHGpEI&ved=2ahUKEwiEv76Wg633AhVRLBoKHYiGAfIQvS56BAgMEAE&sa=X&rlst=f#dlnr=1&rlfi=hd:;si:7685376553708120908,l,CgxGbG93ZXIgc2hvcHNIw4-b4dKtgIAIWhQQABABGAAiDGZsb3dlciBzaG9wc5IBD2Zsb3dlcl9kZXNpZ25lcpoBI0NoWkRTVWhOTUc5blMwVkpRMEZuU1VOdFgzVlFRMEpCRUFFqgEUEAEqECIMZmxvd2VyIHNob3BzKAA,y,XQ9OeXHGpEI;mv:[[33.688926099999996,73.1433227],[33.5448866,72.9740797]];tbs:lrf:!1m4!1u3!2m2!3m1!1e1!1m4!1u2!2m2!2m1!1e1!2m1!1e2!2m1!1e3!3sIAE,lf:1,lf_ui:10')
time.sleep(10)
print('clicking ')
driver.find_element_by_xpath('//*[@class="DvzRrc ab_button"]').click()
print('Done')
time.sleep(5)
driver.find_element_by_xpath('//span[@class="VfPpkd-Jh9lGc"]').click()
time.sleep(15)
driver.find_element_by_xpath('//div[@aria-label="Five stars"]').click()
time.sleep(3)
driver.find_element_by_xpath('//*[@class="gLFyf gsfi"]').send_keys('cars')
time.sleep(2)
driver.find_element_by_xpath('//*[@class="gLFyf gsfi"]').send_keys(Keys.ENTER)
time.sleep(50)
def main():
login_Undetected()
if __name__ == "__main__":
main()
The Problem i am facing is after line 24
The elements i was trying to access was inside another i frame so i have to switch between them to interact with them i used
driver.switch_to.frame(driver.find_element_by_name("IFRAME NAME"))
#ENTER CODE HERE
#AFTER THAT SWITCH BACK TO DEFAULT WINDOW BY
driver.switch_to.default_content()
to switch between frames and that did the trick
please remember to switch back after your work is done