Google web tarayıcısını, sayfadaki tarayıcıya ait olmayan bir öğeye nasıl taşıyabilirim? Öğe sayfada bulunur ve görüntülenir, ancak öğenin sayfanın alt kısmında görünmesi ve tarayıcının öğeyi görüntüye getirmek için aşağı kaydırması gerekebilir. Bir öğe sayfasında ve muhtemelen en altında görünümünde değilseTarayıcı penceresinde görünmeyen geb sayfası içeriğine nasıl taşınır?
import geb.Page
class myPage extends Page {
static url = "mypage.xhtml"
static at = {title == "myPage"}
static content = {
someElement = {$("#bottomOfPage")}
anotherElement = {$(".someClass",5)}
}
void clickElement(){
//possibility to fail because element may not be displayed in browsers view
//if not in view, scroll to element, then click
someElement.click()
}
}
, örnek olarak bu sayfayı kullanarak, nasıl görünüme eleman getirmek için webdriver söyleyebilir? Sayfa içeriği görünmediğinde başarısız olan bazı karmaşık testlerim var. Bazı durumlarda, sürücü görüş alanında olmasa bile öğeye geçecektir. Ancak, sürücüye, kendi başına hareket etmediği durumlar için değilse, bir öğeye geçmesini açıkça belirtmek isterim.
Selenyum kitaplığı bir moveToElement() işlevine sahiptir, ancak yalnızca WebElement sınıfının nesnelerini kabul eder. Gebeleri kullanarak, sayfa sınıfları oluştururken, testlerimde kullanılan tüm öğeler içerik bölümünde bildirilir ve dolayısıyla SimplePageContent sınıfıdır. SimplePageContent, bir WebElementine de dönüştürülemez. moveToElement(By.id("bottomOfPage"))
işe yarıyor, ancak ideal değil çünkü sert kodlanmış değerler istemiyorum. Mümkünse sayfa içerik nesnesinin kendisini çok fazla geçirin.
: Bir
interact {}
blok kullanın -Navigator
sWebElement
s ayıklanması gerek olmayacak basit bir yolu da vardır. Yöntem, nesneyi aşağı kaydırmak için JS'yi yürütmek üzere JavaScriptExecutor'ı kullanacaktır. [Bu gönderideyken aşağı/yukarı kaydırma NASIL'a bakın (http://stackoverflow.com/questions/12293158/page-scroll-up-or-down-in-selenium-webdriver-selenium-2-using-java) – Buaban