Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium webdriver 如何用Python+;硒_Selenium Webdriver_Selenium Chromedriver - Fatal编程技术网

Selenium webdriver 如何用Python+;硒

Selenium webdriver 如何用Python+;硒,selenium-webdriver,selenium-chromedriver,Selenium Webdriver,Selenium Chromedriver,我有span上传图片的链接。当我点击这个链接时,它会打开一个Chrome窗口来选择一个文件。但是硒不能自动做到这一点。如何处理此窗口并选择文件 choose_photo = driver.find_element_by_id("form-2033-innerCt") choose_photo.click() choose_photo.send_keys("C:\\Users\\Support\\AppData\\Roaming\\Skype\\My Skype Received Files\\1

我有
span
上传图片的链接。当我点击这个链接时,它会打开一个Chrome窗口来选择一个文件。但是硒不能自动做到这一点。如何处理此窗口并选择文件

choose_photo = driver.find_element_by_id("form-2033-innerCt")
choose_photo.click()
choose_photo.send_keys("C:\\Users\\Support\\AppData\\Roaming\\Skype\\My Skype Received Files\\1.png")
这是要单击的HTML元素

<span id="fileuploadfield-2034-button-btnInnerEl" data-ref="btnInnerEl" unselectable="on" class="x-btn-inner x-btn-inner-default-small">Choose photo</span>
选择照片
截图:


请注意,
HTM
L元素不是
type=file
,如您所见。

在HTML中,上载文件的常用方法是使用
输入类型=file
。我猜在您的例子中,
文件
输入是隐藏的,单击
span
会触发它。 您可以尝试找到隐藏的输入并在其中键入


另请参见HTML中的

上传文件的常用方法是使用
输入类型=文件
。我猜在您的例子中,
文件
输入是隐藏的,单击
span
会触发它。 您可以尝试找到隐藏的输入并在其中键入

另请参见

>

或 尝试使用AutoIT上载文件,如果此选项不适用于您,则使用AutoIT上载文件

>

>


尝试使用AutoIT上载文件,如果此选项不适用于您,则使用AutoIT上载文件。

下载和安装AutoIT的步骤:-

  • 下载链接=

  • 安装

  • 转到“程序”菜单,查看AutoIt文件夹并根据您的系统打开

  • 现在下载AutoIt脚本编辑器并安装,下载链接=

  • 使用AutoIT的步骤:-

  • 标识Windows控件

  • 使用标识的windows控件生成AutoIt脚本

  • 编译.au3脚本并将其转换为.exe文件

  • 将.exe文件调用到Selenium测试用例中

  • 下面是AutoIt脚本:-

    等待10秒钟,等待上载窗口出现

    WinWait("[CLASS:#32770]","",10)
    
    使用WinWait返回的句柄将输入焦点设置为Upload窗口的编辑控件

     ControlFocus("File Upload","","Edit1")
    
     Sleep(2000)
    
    在编辑字段上设置文件名文本

      ControlSetText("File Upload", "", "Edit1", "SomeFile.txt")
    
      Sleep(2000)
    
    单击“打开”按钮

    ControlClick("File Upload", "","Button1");
    
  • 编译
    .au3脚本
    并将其转换为
    .exe
    文件

  • .exe
    文件调用到Selenium测试用例中,例如

    Runtime.getRuntime().exec("D:\AutoIt\AutoItTest.exe");
    

  • 下载和安装AutoIt的步骤:-

  • 下载链接=

  • 安装

  • 转到“程序”菜单,查看AutoIt文件夹并根据您的系统打开

  • 现在下载AutoIt脚本编辑器并安装,下载链接=

  • 使用AutoIT的步骤:-

  • 标识Windows控件

  • 使用标识的windows控件生成AutoIt脚本

  • 编译.au3脚本并将其转换为.exe文件

  • 将.exe文件调用到Selenium测试用例中

  • 下面是AutoIt脚本:-

    等待10秒钟,等待上载窗口出现

    WinWait("[CLASS:#32770]","",10)
    
    使用WinWait返回的句柄将输入焦点设置为Upload窗口的编辑控件

     ControlFocus("File Upload","","Edit1")
    
     Sleep(2000)
    
    在编辑字段上设置文件名文本

      ControlSetText("File Upload", "", "Edit1", "SomeFile.txt")
    
      Sleep(2000)
    
    单击“打开”按钮

    ControlClick("File Upload", "","Button1");
    
  • 编译
    .au3脚本
    并将其转换为
    .exe
    文件

  • .exe
    文件调用到Selenium测试用例中,例如

    Runtime.getRuntime().exec("D:\AutoIt\AutoItTest.exe");
    

  • 你能检查兄弟姐妹/祖先的
    吗?你能检查兄弟姐妹/祖先的
    吗?正如我前面所说,没有带有InputTypeFile的元素。我会试试你的code@Sergeymoroz使用AutoITchoose\u photo=driver。通过id(“form-2033-innerCt”)查找元素\u选择\u photo。单击()autoit.win\u wait\u active(“Open”)打印(autoit.win\u get\u title\u by\u handle())autoit.send\u key(os.path.join(“C:\\Users\\Support\\AppData\\Roaming\\Skype\\,“1.png”))autoit.send({ENTER})它也不起作用,正如我以前所说,没有具有InputTypeFile的元素。我会试试你的code@Sergeymoroz使用AutoITchoose\u photo=driver。通过\u id(“form-2033-innerCt”)查找\u元素\u选择\u photo。单击()autoit.win\u wait\u active(“Open”)打印(autoit.win\u get\u title\u by\u handle())autoit。发送密钥(os.path.join(“C:\\Users\\Support\\AppData\\Roaming\\Skype\\,“1.png”))autoit.send({ENTER})也不起作用