使用 switch-case 选择页面上的元素的替代方法

Alternatives to using switch-case for selecting an element on a page

我正在使用 selenium 自动与网页上的 table 交互。

table 有几列,我通过单击 sortable-headers(列名)

对 table 中的数据进行排序

我使用了 switch-case 语句,例如

switch(columnName){

case: "firstname": 

     columnHeader=driver.findElement(By.xpath());

case: "lastname":

     columnHeader=driver.findElement(By.xpath());

...
...

 and so on.

}

有什么比使用 switch-case 更好的选择呢? 我也用过这个,因为我不想为每一列写一个单独的方法。

我的建议是继续写一个方法来对每一列的 table 进行排序。这避免了一些问题... 1) 消费者不必查看页面来记住所有列可用于排序的内容,2) 消费者不必查看您正在编写的函数的代码了解他们需要传递什么字符串才能按所需列排序,3) 您不必担心传递错误的字符串,4) 消费者不必担心传递错误的字符串,等等。其中许多问题不会在编译时被发现,这意味着您将(或可能)在脚本为 运行 时发现它们。您希望在编译时优先查找尽可能多的错误。它将为您节省大量时间并防止出现大量错误。

其他好处是消费者查看 API 并查看 .sortTableByFirstName().sortTableByLastName() 等方法,每个函数的作用一目了然,并将错误移至编译时因为你不能调用一些不存在的方法,因为名字打错了。