2016-01-20 35 views
2

它如何使用id,class等類型來定位或標識元素。此外,BY是一個抽象類。如果可能,我們如何爲它創建對象?我們知道我們不能直接爲抽象創建對象,而不能由另一個類實現它。我想知道它背後的場景中,我們直接使用我們的腳本如何使用'By'機制來定位硒中的元素

公共抽象類通過 之前擴展java.lang.Object

我已經通過鏈接「https://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/By.html

+0

你的答案是[這裏](http://stackoverflow.com/questions/17407203/can-we-use-static-method-in-an-abstract-class)。你需要了解抽象類的概念。 –

回答

1

我走了也需要相同的功能,而不是創建使用下面的代碼實現的功能。基本上findElement方法使用By來定位元素。

String xPath = "xpath=//*[@text='some text']"; 
//String xPath = "name='some text'"; 
//String xPath = "id=xxxx"; 

driver.findElement(getBy(xPath)); 

private By getBy(String locator) { 
    String[] parts = locator.split("=", 2); 
    By by = null; 
    switch (parts[0].trim()) { 
    case "xpath": 
     by = By.xpath(parts[1]); 
     break; 
    case "name": 
     by = By.name(parts[1]); 
     break; 
    case "link": 
     by = By.linkText(parts[1]); 
     break; 
    case "id": 
     by = By.id(parts[1]); 
     break; 
    case "css": 
     by = By.cssSelector(parts[1]); 
     break; 
    default: 
     throw new RuntimeException("invalid locator"); 
    } 
    return by; 
} 

希望這會對你有幫助。

+0

感謝您的回覆。這將有助於我更多地瞭解它。 –

+0

@RameshUppuluri如果是,至少選擇一個正確答案。樂意效勞。 –

0

你不需要了解硒的實施。你只需要知道如何使用它。

如果您在IDE中自動完成並鍵入By。你會看到很多在這個By類中定義的靜態方法。

這裏是一個example

+0

謝謝你的建議,是的,我同意你的看法,但就採訪而言,我們必須知道它的內在和外在。 :P –

相關問題