2016-02-15 2 views
1

Как написать для них обобщенное? Я имею в виду, что функция должна принимать параметры и возвращать нужную строку.Java: Как написать обобщенную функцию для этого?

String fullName = driver.findElement(By.className("full-name")).getText(); 
String title = driver.findElement(By.className("title")).getText(); 
String locality = driver.findElement(By.className("locality")).getText(); 
String industry = driver.findElement(By.className("industry")).getText(); 
String connections = driver.findElement(By.xpath("//div[@class='member-connections']/strong")).getText(); 
String profileLink = driver.findElement(By.className("view-public-profile")).getText(); 

Функция должна быть что-то вроде этого:

String getInfo(String className, String byType) { 
    return driver.findElement(By.byType(className)).getText(); 
} 

EDIT:

Я написал эту функцию, но я не уверен, как добавить ByType с By.

static String getInfo(WebDriver driver, String byType, String byParam) { 
     return driver.findElement(By. + byType + (byParam)).getText(); 
    } 

Спасибо!

+0

могли бы Вы написать некоторый Судо-код для того, что вы ищете? Я не совсем понимаю этот вопрос. – nlloyd

+0

Отредактированный вопрос. – Retr0spect

+0

У вас есть какой-то объект, который вы использовали бы для хранения этой информации? Если вы этого не сделаете (или по какой-то причине вы не верите, что вам это нужно), то то, что у вас есть, вполне возможно. – Makoto

ответ

1

Это кажется намного легче, чем другие ответив таким образом я собираюсь поставить свою шею на линии. и сказать, что случилось с этим ...

public String get(WebDriver driver, By by) { 
    return driver.findElement(by).getText(); 
} 

..и использовать его как ...

String a = get(urDriver, By.className(someName)); 
String b = get(urDriver, By.xpath(somePath)); 
1

Вы можете попробовать это:

public String byXpath(String xpath) { 
    return driver.findElement(By.xpath(xpath)).getText(); 
} 

public String byClass(String $class) { 
    return driver.findElement(By.className($class)).getText(); 
} 

Отредактировано:

public String by(By by) { 
    return driver.findElement(by).getText(); 
} 

String x = by(By.className(name)); 
String y = by(By.xpath(path)); 
+0

Мне просто нужна одна функция, потому что помимо byXpath, byClass; есть и другие типы, например, byCss и т. д. Я не хочу писать для них отдельные функции. – Retr0spect

+0

Затем вы можете написать еще одну функцию, которая смотрит на полученное строковое выражение и отправляет соответствующее сообщение. – Thilo

Смежные вопросы