如何在Ubuntu os wsl中使用python selenium pytest上传文件需要双击才能上传

oknwwptz  于 2023-06-21  发布在  Python
关注(0)|答案(1)|浏览(141)

我在运行我的selenium脚本时遇到了问题,在运行它时,它不会点击我试图上传的文件,它只是停留在对话框中,而不是选择和点击文件

我有我的代码在这里,但它得到一个错误

PATH_FOLDER = get_project_root() + "/file_attachment/"
_elem = browser.find_element(by=By.ID, value="iupload_field")
actionChains = ActionChains(browser)
print("\n path of upload: "+ PATH_FOLDER + "testCert.pdf" )
actionChains.move_to_element(_elem).send_keys(PATH_FOLDER +"testCert.pdf").perform()

但它得到一个错误noSuchElementException

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element

任何建议或解决方案都非常感谢

xxe27gdn

xxe27gdn1#

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

   # Wait for the element to be present
   wait = WebDriverWait(browser, 10)
   elem = wait.until(EC.presence_of_element_located((By.ID, "iupload_field")))

   # Once the element is present, perform the action
   actionChains = ActionChains(browser)
   actionChains.move_to_element(elem).send_keys(PATH_FOLDER + 
   "testCert.pdf").perform()

如果上述步骤不能解决问题,请确保元素的定位器策略(在本例中,使用By.ID)适合于定位元素。您可能需要使用不同的定位器策略,如By.XPATH或By.CSS_SELECTOR,具体取决于HTML的结构。
通过遵循这些建议,您应该能够解决NoSuchElementException并成功定位文件上载所需的元素。

相关问题