2017-10-11 1 views
-2

Wenn ich auf eine Schaltfläche klicke, öffnet sich das Modal und dort muss ich das Formular ausfüllen und auf Senden klicken. kann das Formular bis zu den Feldern ausfüllen, die standardmäßig im Modal sichtbar sind. Aber nicht in der Lage, die anderen Felder, die nur nach dem Bildlauf sichtbar sind, zu füllen.modal elements ist nicht in der Lage, durch selen webdriver zu finden

Gibt es eine Lösung für das oben genannte Problem. für dieses Element

+0

Siehe: [Wie mache ich X?] (Https://meta.stackoverflow.com/questions/253069/whats-the-apply-new-current-close-reason-for-how-do-i -do-x) Die Erwartung an SO ist, dass der Benutzer, der eine Frage stellt, nicht nur Forschung betreibt, um seine eigene Frage zu beantworten, sondern auch diese Forschung, Code-Versuche und Ergebnisse teilt. Dies zeigt, dass Sie sich die Zeit genommen haben, sich selbst zu helfen, es rettet uns davor, offensichtliche Antworten zu wiederholen, und vor allem hilft es Ihnen, eine spezifischere und relevantere Antwort zu bekommen! Siehe auch: [ask] – JeffC

Antwort

0

Neben der @Shoaib Akhtar zu beantworten JavascriptExecutor zu Element blättern können

// Create instance of Javascript executor 

JavascriptExecutor je = (JavascriptExecutor) driver; 

//Identify the WebElement which will appear after scrolling down 

WebElement element = driver.findElement("Locator"); 

// now execute query which actually will scroll until that element is not appeared on page. 

je.executeScript("arguments[0].scrollIntoView(true);",element); 

//and then code for operations 
+0

danke es funktionierte für mich – joy

0

Sie müssen zuerst nach Element blättern und dann eine Aktion wie sendKeys ausführen. Sie müssen auch warten müssen.

können Sie die org.openqa.selenium.interactions.Actions Klasse verwenden, um ein Element zu bewegen:

WebElement element = driver.findElement(By.id("my-id")); 
Actions actions = new Actions(driver); 
actions.moveToElement(element); 
actions.perform(); 

Für Scroll down ohne ein Element:

WebDriver driver = new FirefoxDriver(); 
JavascriptExecutor jse = (JavascriptExecutor)driver; 

jse.executeScript("window.scrollBy(0,250)", ""); 

ODER

jse.executeScript("scroll(0,250)"); 

unten Code Versuchen: -

JavascriptExecutor js = (JavascriptExecutor) driver; 
js.executeScript("javascript:window.scrollBy(250, 350)"); 

Versuchen Code Sankalp es funktionieren wird

vollständige Codebeispiel wie: -

driver.get("https://jquery.com/"); 

try { 
    Thread.sleep(6000); 
} catch (InterruptedException e) { 
    e.printStackTrace(); 
} 
JavascriptExecutor js = (JavascriptExecutor) driver; 
WebElement element = driver.findElement(By.xpath("//*[@id=\"legal\"]/ul/li[1]/a")); 
js.executeScript("arguments[0].scrollIntoView(true);",element); 
System.out.println("Done"); 
+0

hi sir, ich habe versucht, mit dem obigen Code zu scrollen, aber es scrollt nicht – joy

+0

und das wirft keinen Fehler auch – joy

+0

hinzugefügt ein Beispiel in Antwort. sankalp code funktioniert –

0

Sie zum ersten Spirale brauchen, um diejenigen Element erscheinen zu lassen, danach die restlichen Code schreiben

WebDriver driver = new FirefoxDriver(); 
JavascriptExecutor jse = (JavascriptExecutor)driver; 
jse.executeScript("scroll(0,400)");//This will scroll page 400 pixel vertical 
Verwandte Themen