2016-05-23 7 views
0

Hallo klicken habe ich den folgenden Codecannnot a href

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<body class="skin-blue sidebar-mini"> 
<div class="wrapper"> 
<header class="main-header"> 
<aside class="main-sidebar"> 
<section class="sidebar" style="height: auto;"> 
<div class="user-panel"> </div> 
<br> 
<br> 
<br> 
<ul class="sidebar-menu"> 
<li class="treeview"> 
<a href="../user/account"> 
<i class="fa fa-edit"></i> 
<span>Basic Information</span> 
</a> 
</li> 
<li class="treeview"> 
<a href="../admin/myproperties"> 
<i class="fa fa-list"></i> 
<span>My Hotel</span> 
</a> 
</li> 
</ul> 
</section> 
</aside> 

Der Nachtschwärmer-Code ich verwende, ist dies, und der Fehler ist, dass es das Element finden kann nicht. In anderen Seite würde dies gut funktionieren, aber hier ist es, wie es buggs

module.exports = { 
    tags: [''], 
    'extranet' : function (client) { 
    client 
     .url('www.somesite.com') 
     .waitForElementVisible('body', 1000) 

     // --Log In Form // 
     //.click('a[class="btn btn-block btn-social btn-lg btn-google"]') 
     .setValue('input[name=email]', '[email protected]') 
     .setValue('input[name=password]', 'password') 
     .click('button[type="submit"]') 

     .click('a[href="../user/account"]') 

LÖSUNG: half Kishan Patel viel so ist hier die Nighwatch.js, die dieses Element klickt mit XPath

module.exports = { 
    tags: [''], 
    'extranet' : function (client) { 
    client 
     .url('www.somesite.com') 
     .waitForElementVisible('body', 1000) 
     .setValue('input[name=email]', '[email protected]') 
     .setValue('input[name=password]', 'password') 
     .click('button[type="submit"]') 
     .waitForElementVisible('section[class="sidebar"]', 10000) 
     .useXpath() 
     .click('html/body/div[1]/aside/section/ul/li[1]/a') 
     .pause(5000) 
     .end(); 

    } 
}; 
+0

Verwenden Sie linktext oder partiellen Link Text –

+0

können Sie mir helfen, weil ich keine Ahnung habe, wie dies zu tun ist? – Andrew

+0

Teilen Sie mir Ihren Code oder Ihre Website, wo es href ist –

Antwort

1

Probieren Sie den folgenden Code aus. Sie wenden etwas warten nach dem Schlagen ab und es wird gelöst werden. Ich habe den gleichen Code in JAVA erfolgreich ausgeführt.

WebDriver driver = new FirefoxDriver(); 
driver.manage().window().maximize(); 

driver.get("http://example.com"); 

// Benutzername

driver.findElement(By.xpath("html/body/div[1]/div/div[2]/form/div[3]/input")).sendKeys("e-mail"); 

// Passwort

driver.findElement(By.xpath("html/body/div[1]/div/div[2]/form/div[4]/input")).sendKeys("password"); 

// anschließend auf Hit

driver.findElement(By.xpath("html/body/div[1]/div/div[2]/form/div[5]/div/button")).click(); 

// Warten Element sichtbar sein

WebDriverWait wait = new WebDriverWait(driver, 10); 
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("html/body/div[1]/aside/section/ul/li[1]/a"))); 

// Klicken Sie auf das href = „../ Benutzer/Konto“

driver.findElement(By.xpath("html/body/div[1]/aside/section/ul/li[1]/a")).click(); 
+0

danke für die Hilfe ich werde schauen, um dies in Nightwatch zu übersetzen. Wenigstens habe ich einiges gelernt. – Andrew

+0

Ja. Ich habe meinen Code ausgeführt und es funktioniert gut. Sie müssen nur übertragen. Und wenn Sie mit meiner Antwort glücklich sind, können Sie meine Antwort ankreuzen oder meine Antwort ankreuzen, die zeigt, dass Sie meine Antwort akzeptiert haben. Glückliches Lernen. :-) –

0

Zunächst einmal sorry für diesen Abschnitt mit einem Kommentar zu machen, aber ich nicht genug Ruf, dies zu tun . @Kishan Patel: Könntest du bitte mein Problem sehen? Loop is not working properly - nightwatch

+0

Sorry, aber ich bin vertrauter mit JAVA. Ich kann dich nur in JAVA weiterempfehlen. Angenommen, es gibt 50 Links unten und Sie müssen alle Links testen, ob sie wahr sind oder nicht. Nehmen Sie einfach den Titel der Seite und bestätigen Sie mit dem erwarteten Titel. Erstellen Sie einfach eine Methode benennen Sie es als verifyText oder etwas und rufen Sie diese Methode für alle 50 Links. Erstellen Sie ein Seitenobjektmodell mit verifyText() als allgemeine Methode in einer separaten Klasse. Dann erstellen Sie einfach ein Objekt für diese Klasse in Ihrem Testfall und validieren Sie alle Ihre 50 Links. Ich hoffe, ich spreche Sinn. Kann ich dich mit Rita in Verbindung bringen? –

+0

@KishanPatel, danke für Ihre Hilfe, ich kann beziehen und verstehen. Jetzt ist mein Hauptproblem zu verstehen, wie Seitenobjekt funktioniert. Ich kann nur Tutorials in Java finden. Ich möchte in Javascript. – Rita

+0

Wenn Sie über Seite Objekt wissen wollen, kann ich es als Beispiel in Java zeigen, dann können Sie es sicher beziehen. Einfach eine Frage posten und hier die Frage kommentieren. Ich werde mich darum kümmern, wenn du meine Hilfe brauchst. Glückliches Lernen. :-) Oder aber viele Dinge sind im Netz für das Seitenobjekt verfügbar. –