Je souhaite utiliser PowerShell
avec Selenium
et télécharger Selenium depuis http://www.Java2s.com/Code/Jar/s/Downloadseleniumremotedriver2350jar.htm . Lorsque j'essaie de charger l'une des DLL, j'ai des erreurs. J'espère que quelqu'un pourra m'aider.
Ceci est mes informations système.
OS Name: Microsoft Windows 7 Enterprise
OS Version: 6.1.7601 Service Pack 1 Build 7601
OS Manufacturer: Microsoft Corporation
Ceci est mes informations PowerShell.
PS C:\Users\test\Downloads\Selenium-dotnet-2.35.0\net40> $psversiontable
Name Value
---- -----
PSVersion 4.0
WSManStackVersion 3.0
SerializationVersion 1.1.0.1
CLRVersion 4.0.30319.18052
BuildVersion 6.3.9421.0
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion 2.2
PS C:\Users\test\Downloads\Selenium-dotnet-2.35.0\net40>
Ce sont les erreurs que j'ai eues en essayant de charger la DLL.
PS C:\Users\test\Downloads\Selenium-dotnet-2.35.0\net40> Add-Type -Path .\WebDriver.dll
Add-Type : Could not load file or Assembly 'file:///C:\Users\test\Downloads\Selenium-dotnet-2.35.0\net40\WebDriver.dll' or one of its dependencies. Operation is
not supported. (Exception from HRESULT: 0x80131515)
At line:1 char:1
+ Add-Type -Path .\WebDriver.dll
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Add-Type], FileLoadException
+ FullyQualifiedErrorId : System.IO.FileLoadException,Microsoft.PowerShell.Commands.AddTypeCommand
PS C:\Users\test\Downloads\Selenium-dotnet-2.35.0\net40> [reflection.Assembly]::LoadFrom(".\WebDriver.dll")
Exception calling "LoadFrom" with "1" argument(s): "Could not load file or Assembly 'file:///C:\Users\test\WebDriver.dll' or one of its dependencies. The system
cannot find the file specified."
At line:1 char:1
+ [reflection.Assembly]::LoadFrom(".\WebDriver.dll")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : FileNotFoundException
PS C:\Users\test\Downloads\Selenium-dotnet-2.35.0\net40> [reflection.Assembly]::LoadFrom("WebDriver.dll")
Exception calling "LoadFrom" with "1" argument(s): "Could not load file or Assembly 'file:///C:\Users\test\WebDriver.dll' or one of its dependencies. The system
cannot find the file specified."
At line:1 char:1
+ [reflection.Assembly]::LoadFrom("WebDriver.dll")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : FileNotFoundException
PS C:\Users\test\Downloads\Selenium-dotnet-2.35.0\net40> [reflection.Assembly]::LoadFrom("C:\Users\test\Downloads\Selenium-dotnet-2.35.0\net40\WebDriver.dll")
Exception calling "LoadFrom" with "1" argument(s): "Could not load file or Assembly 'file:///C:\Users\test\Downloads\Selenium-dotnet-2.35.0\net40\WebDriver.dll' or
one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)"
At line:1 char:1
+ [reflection.Assembly]::LoadFrom("C:\Users\test\Downloads\Selenium-dotnet-2.35.0 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : FileLoadException
PS C:\Users\test\Downloads\Selenium-dotnet-2.35.0\net40> [reflection.Assembly]::LoadFile("C:\Users\test\Downloads\Selenium-dotnet-2.35.0\net40\WebDriver.dll")
Exception calling "LoadFile" with "1" argument(s): "An attempt was made to load an Assembly from a network location which would have caused the Assembly to be sandboxed
in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy by default, so this load may be dangerous. If
this load is not intended to sandbox the Assembly, please enable the loadFromRemoteSources switch. See http://go.Microsoft.com/fwlink/?LinkId=155569 for more
information."
At line:1 char:1
+ [reflection.Assembly]::LoadFile("C:\Users\test\Downloads\Selenium-dotnet-2.35.0 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : NotSupportedException
PS C:\Users\test\Downloads\Selenium-dotnet-2.35.0\net40>
Si vous avez téléchargé les .DLL à partir d'Internet, Powershell par défaut ne leur fera pas confiance. Vous pouvez faire deux choses ici:
Unblock-File
applet de commande.En particulier, l'examen et le déblocage du contenu en lequel vous avez confiance semblent être la meilleure solution, en particulier pour votre cas, car vous semblez ne le faire qu'une seule fois et vous faites confiance au package.
Edit: Si cela ne résout pas cela, l'autre expérience que j'ai eue avec ce type d'erreur est quand Powershell n'a pas la même version de le runtime .NET en tant qu'assembly. Voir cette question pour un certain contexte, où Powershell 2.0 a exécuté le runtime .NET 2 et le demandeur avait besoin de .NET 4 pour certains assemblys.
Vous n'utilisez pas la même version de PS, donc votre kilométrage peut varier, mais j'essaierais de créer/modifier un fichier de configuration selon la réponse liée pour prendre en charge l'exécution des DLL que vous utilisez.
Cela a fonctionné pour moi: (from https://stackoverflow.com/a/19957173/107161 )
Dans les fichiers:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe.config C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<runtime>
<loadFromRemoteSources enabled="true"/>
</runtime>
</configuration>
Exécuter en tant qu'administrateur a résolu le problème, bien que ma politique get-execution soit entièrement signée