我正在运行 Selenium 测试。由于 DOM 更改,测试经常中断,因此我最终不得不进入代码并更改选择器。
还有其他人遇到同样的问题吗?你做了什么来减轻这种头痛(除了删除魔术字符串、使用变量和实现编程模式来测试代码)?
我正在运行 Selenium 测试。由于 DOM 更改,测试经常中断,因此我最终不得不进入代码并更改选择器。
还有其他人遇到同样的问题吗?你做了什么来减轻这种头痛(除了删除魔术字符串、使用变量和实现编程模式来测试代码)?
heh)我在当前项目中使用以下解决方案:
selenium-config.properties
我在文件中包含所有定位器 :
在我的 BaseSeleniumTest.java 我有以下内容:
import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
import org.springframework.core.io.support.PropertiesLoaderUtils;
....
public class BaseSeleniumTest extends SeleneseTestBase {
static WebDriver driver;
@Before
public void homePageRefresh() throws IOException {
driver.manage().deleteAllCookies();
//usage example of loading value by key from .properties file
driver.get(propertyKeysLoader("login.base.url"));
}
......
......
public String propertyKeysLoader(String key) throws IOException {
Properties props = PropertiesLoaderUtils.loadAllProperties("selenium-config.properties");
PropertyPlaceholderConfigurer props2 = new PropertyPlaceholderConfigurer();
props2.setProperties(props);
return (String)props.get(key) ;
}
}
因此,如果 DOM 发生变化——你只需在 .properties 文件中更改定位器——就是这样。希望它可以帮助你。