Ich versuche, klicken Sie auf Upload vollständig Formular, durch Selen mit XPath, aber das tut nichts mit seinem XPath, ich fragte mich, ob jemand irgendwelche Vorschläge hatte Antworten?Hochladen von Dateien mit Selenium in C#?
Unten ist der HTML-Code aus Chrome Inspektion.
<button ng-if="$root.AccessLevel.Standard" class="btn btn--small btn--icon ng-pristine ng-valid ng-touched" ng-model="vm.uploads[workCategory.Id].reference" ngf-max-size="'5MB'" ngf-model-invalid="vm.uploads[workCategory.Id].referenceInvalid" ngf-pattern="'.pdf,.doc,.docx,.bmp,.gif,.jpg,.jpeg,.tif,.wmf,.png'" ngf-select="vm.uploadFile($file, 'WorkCategoryReference', workCategory.Id, workCategory.References, workCategory.Id+'uploadRef')">
<span promise="vm.promises[workCategory.Id+'uploadRef']">
<span ng-hide="pending" class="">
<i class="fa fa-lg fa-cloud-upload"></i>
</span>
<span ng-show="pending" class="ng-hide">
<i class="fa fa-lg fa-refresh fa-spin"></i>
</span>
</span>
Upload completed form
</button>
Unten ist meine NUnit-Klasse mit dem XPath in
wait.PathWaitAndClick(driver, "*[@id=\"accordiongroup - 299 - 4516 - panel\"]/div/div[2]/div[1]/table/tfoot/tr/td/button", 2000);
bestand auch unter I WebExtension Methode bin mit.
public static void PathWaitAndClick(this WebDriverWait wait, IWebDriver driver, string path, int pause = 0)
{
if (pause > 0)
{
System.Threading.Thread.Sleep(pause);
}
wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath(path)));
IWebElement viewAllWc = driver.FindElement(By.XPath(path));
if (pause > 0)
{
System.Threading.Thread.Sleep(pause);
}
viewAllWc.Click();
}
Drei einfache Fragen: Ist Ihr XPath im Moment des Klickens gültig? Befindet sich die Schaltfläche in einem Iframe-Tag? Können Sie Ihre laufende Methode pausieren und prüfen, ob ein Fehler in der Browser-Konsole angezeigt wird? –
Es ist nicht, traf meinen Haltepunkt @StriterAlfa –
Sie können überprüfen, ob Ihr xpath gültig ist, indem Sie den Befehl $ x ("Ihr xpath") an der Chrome-Konsole verwenden. Sie können auch überprüfen, ob es sich in einem Iframe befindet, das den HTML-Code der Seite überprüft. Wenn der Debugger Ihren Haltepunkt nicht erreichen kann, um Ihre Klickaktion zu debuggen, liegt ein Fehler vor, den Sie nicht benötigen. –