2015-08-17 15 views

cevap

12

myWebElement.click();

Eylemler (sürücü) .click (myWebElement) .build(). Perform(); Tıklama yöntemi ve eylemleri sınıf webdriver.Action sınıfına aittir Hem

.click yönteme tıklamak için kullanılan (ve Bırak veya Control tuşu vb ile birden çok öğeyi tıklatarak böyle Drag olarak işlemler dahil) karmaşık kullanıcı hareketlerini taklit kullanılır ilgili webElement (düğmeler, bağlantılar vb) .Selenium Webdriver id/xpath vb

JavaScriptExecutor gibi konumlandırıcılarını kullanarak webElement nesnesine DOM öğesini haritalama için tarayıcının yerel destek kullanır selenyum sürücüsü aracılığıyla Javascript yürütmek için bir mekanizma sağlar bir arayüzdür. Şu anda seçilen çerçeve veya pencere bağlamında harici JavaScript çalıştırmak için "executescript" & "executeAsyncScript" yöntemleri sağlar. Executescript durumunda, daha sonra WebElement

'a dönüştürülen tıklatılan bir DOM öğesi döndürecektir. bir tarayıcıda WebDriver tarafından gerçek kullanıcı bir javascript

Örnek senaryo kullanılarak çağrılan kıyasla ne benzer: Eğer tıklarsanız

<html> 
<body> 
<button type = "button" id ="test" style = "display:none"> clickme </button> 
</body> 
</html> 

düğmesi web tıklama işlevini kullanarak "beni tıkla" eleman DOM mevcuttur ancak yukarıdaki javascript kullanırsanız

((JavascriptExecutor)driver).executeScript("$('#test').click();");//or 
((JavascriptExecutor)driver).executeScript("document.getElementById('test').click();"); 

ayarlanır display:none css tarzı olarak kullanıcıya gösterilmez olarak sürücü doğru bir org.openqa.selenium.ElementNotVisibleException (Eleman görünmez istisna) alacak/jquery öğesinin üzerine tıklamak için düğmenin tıklanıp çıkmadığına bakılmaksızın düğmeyi tıklarsınız, aksi halde son kullanıcının düğmeyi göremeyeceği/tıklayamayacağı ancak komut dosyanızın geçemeyeceği için javascript

Kullanmak yerine mümkün olduğu yerlerde webdriver işlevlerini kullanmaya çalışın. Bu, size yardımcı olur. Umarım herhangi bir sorunuz varsa geri dönün

+1

Açıklama için Vicky'ye teşekkürler. –

+0

Güzel cevap Vicky! –