1

The Code i am using:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains
import time

wait = WebDriverWait
chrome_options = webdriver.ChromeOptions()
prefs = {"profile.default_content_setting_values.notifications": 2}
chrome_options.add_experimental_option("prefs", prefs)
chrome_options.add_argument("start-maximized")
chrome_options.add_argument("--incognito")
driver = webdriver.Chrome(chrome_options=chrome_options,
                          executable_path=r'C:\\chromedriver\\chromedriver.exe')
driver.maximize_window()
driver.get("https://www.arttoframe.com/canvas_acrylic/")
driver.switch_to_frame("Uploadimage")
driver.find_element_by_xpath('//*[ @ id = "dropTarget"] / img').send_keys("C:\\Users\\Dell\\Downloads\\340.JPG")

Error:

C:\Users\Dell\PycharmProjects\ATF_TestOrder\venv\Scripts\python.exe C:/Users/Dell/PycharmProjects/ATF_TestOrder/ATF_TestOrder/ATF_TestOrder.py Traceback (most recent call last): File "C:/Users/Dell/PycharmProjects/ATF_TestOrder/ATF_TestOrder/ATF_TestOrder.py", line 18, in driver.switch_to_frame("Uploadimage") File "C:\Users\Dell\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 775, in switch_to_frame self._switch_to.frame(frame_reference) File "C:\Users\Dell\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\switch_to.py", line 89, in frame self._driver.execute(Command.SWITCH_TO_FRAME, {'id': frame_reference}) File "C:\Users\Dell\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 312, in execute self.error_handler.check_response(response) File "C:\Users\Dell\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.NoSuchFrameException: Message: no such frame (Session info: chrome=65.0.3325.181) (Driver info: chromedriver=2.37.544315 (730aa6a5fdba159ac9f4c1e8cbc59bf1b5ce12b7),platform=Windows NT 10.0.16299 x86_64)

2 Answers 2

0

I may be wrong, but i think you have to find the iframe first and switch to it

driver.switch_to_frame(driver.find_element_by_id('Uploadimage')) 

assuming Uploadimage is an id, you may have to change this one

Sign up to request clarification or add additional context in comments.

Comments

0

The website is still valid, so I give it a try, and it is working with below script. The input element for file can't be set in code, so I use send_text to simulate user input.

from clicknium import clicknium as cc

if not cc.chrome.extension.is_installed():
    cc.chrome.extension.install_or_update()

browser = cc.chrome.open(url="https://www.arttoframe.com/canvas_acrylic/")
browser.find_element_by_xpath('//*[@id="imageUploadNameText"]').click()
browser.find_element_by_xpath('//*[@id="Upload_content"]/div[1]/div/button').click(by='mouse-emulation')

cc.send_text(r'"C:\Users\Dell\Downloads\340.JPG"')
cc.send_hotkey('{Enter}')
browser.find_element_by_xpath('//*[@id="Edit_content"]/div[3]/ul/li[5]/button').click()

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.