java - selenium webdriver - 构造 Action 点击和发送键

标签 java selenium constructor

我有一堆以下作品:

WebElement L3_Y1_total_x = driver.findElement(By.xpath("//input[contains(@class,'sumCell blahblah total')]"));

String L3_Y1_total_x1_value = L3_Y1_total_x.getAttribute("value");
WebElement L3_C1 = driver.findElement(By.xpath("//input[contains(@class,'cell blahblah1 decimal')]"));
L3_C1.click();L3_C1.sendKeys("3,00");L3_C1.sendKeys(Keys.TAB);
try {wait10s.until(Attribute_Not_To_Be.attributeNotToBe(L3_Y1_total_x, "value", L3_Y1_total_x1_value));} catch (TimeoutException e) {};

String L3_Y2_total_x1_value = L3_Y2_total_x.getAttribute("value");
WebElement L3_C2 = driver.findElement(By.xpath("//input[contains(@class,'cell cell blahblah2 decimal')]"));
L3_C2.click();L3_C2.sendKeys("3,00");L3_C2.sendKeys(Keys.TAB);
try {wait10s.until(Attribute_Not_To_Be.attributeNotToBe(L3_Y2_total_x, "value", L3_Y2_total_x1_value));} catch (TimeoutException e) {};

String L3_Y3_total_x1_value = L3_Y3_total_x.getAttribute("value");
WebElement L3_C3 = driver.findElement(By.xpath("//input[contains(@class,'cell blahblah3 decimal')]"));
L3_C3.click();L3_C3.sendKeys("3,00");L3_C3.sendKeys(Keys.TAB);
try {wait10s.until(Attribute_Not_To_Be.attributeNotToBe(L3_Y3_total_x, "value", L3_Y3_total_x1_value));} catch (TimeoutException e) {};

如何缩小代码?至少是 element.click();element.sendKeys("xy");... 序列。

谢谢

最佳答案

这样的东西应该适合你的目的(虽然我现在不能尝试)。使用 L3_Y1_total_xL3_Y2_total_xL3_Y3_total_x 以及相应的参数 blahblah 调用该函数。

public void doAction(WebElement elem, String blahblah) {
    String value = elem.getAttribute("value");
    WebElement L3_C1 = driver.findElement(By.xpath("//input[contains(@class,'cell " + blablah + "decimal')]"));
    L3_C1.click();
    L3_C1.sendKeys("3,00");
    L3_C1.sendKeys(Keys.TAB);
    try {
        wait10s.until(Attribute_Not_To_Be.attributeNotToBe(elem, "value", value));
    } catch (TimeoutException e) {};
}

请注意,使用下划线和大写变量违反了广泛接受的 Java 编码约定。使用驼峰式大小写和小写变量。

关于java - selenium webdriver - 构造 Action 点击和发送键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48900722/

相关文章:

java - 使用 Spring xml 配置从 Rest 端点获取 Maven 构建信息

java - Eclipse 4.2 共享插件

python - 如何使用 python selenium 包打开 chrome webdriver,登录默认用户?

Selenium - 执行 selenium.stop() 时出现异常

c++ - 收到有关默认构造函数的错误,我不知道为什么 - C++

c# - 推荐具有属性的最佳构造函数?

java - 无法连接到 Minecraft 服务器

Jdbc 模板的 Java 模糊方法错误

javascript - 将焦点更改到另一个窗口,其中名称未定义

c++ - 假设没有编译器优化,这个对象会被创建多少次?