[英]How to filter executables using QFileDialog? (Cross-platform solution)
[英]Is there a cross-platform solution to interacting with node OS when using selenium grid?
我编写了一些在本地运行并通过的 selenium 测试。 我为 Windows/Chrome 编写了它们。 有一次,我的应用程序打开了一个本地文件资源管理器来上传文件。 为了与之交互,我使用了 AutoIt,它解决了我的问题。 但是,现在我正在将我的测试移动到网格(通过 lambdatest),并且我正在 Windows 和 Mac 上进行测试。 AutoIt 仅适用于 Windows,并且开箱即用它仅适用于本地。 我知道已经提供了一些远程使用 AutoIt 的解决方案,但这对我使用 Mac OS 没有帮助。
在 selenium 测试期间,是否有关于如何与远程机器交互的通用解决方案?
任何帮助表示赞赏。 我不知道如何解决这个问题。
编辑:在查看了很多解决方案之后,以下是我一直在尝试的,但测试超时,因为它找不到文件输入。 我知道一定有办法做到这一点。 在 MacOS 上测试应用程序的人无法使用 AutoIT,那么解决方案是什么?
# upload photo
photo_upload_element = wait1.until(
EC.visibility_of_element_located((By.CLASS_NAME, 'reply-field__button--cam'))).click()
time.sleep(2)
file_input = self.driver1.find_element_by_css_selector("input[type='file']")
time.sleep(2)
file_input.send_keys(DIR_PATH + r"\path\to\local\photo.jpg")
time.sleep(2)
file_input.send_keys(Keys.RETURN)
time.sleep(2)
wait1.until(
EC.visibility_of_element_located((By.CLASS_NAME, 'buttons-grid__button'))).click()
time.sleep(2)
这是输入页面上的 html:
<template>
<input
class="fileselect"
v-on:change="handleFileSelect"
ref="fileinput"
id="cam"
type="file"
accept="image/*"
:capture="camera"
data-testid="fileselect"
/>
</template>
请确保在应该解决此类问题的网格上运行测试时使用file detector
。
您可以参考以下链接以获取有关文件检测器的更多信息。 远程驱动程序实现中的文件检测器
我认为在这种情况下我们不必使用 AutoIT,因为输入类型是file
,理想情况下send_keys
方法应该负责浏览文件。
我认为您正在尝试管理浏览文件问题。 如果是这样,您可以使用pyautogui
:
from pyautogui import typewrite
typewrite('file.txt')
typewrite(['enter'])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.