从昨晚开始,FirefoxDriver一直在这个页面上打开:https://www.mozilla.org/en-US/firefox/42.0/firstrun/learnmore/.我尝试更改默认配置文件设置,但没有取得任何成功.
下面的问题http://stackoverflow.com/questions/33937067/firefox-webdriver-opens-first-run-page-all-the-time是类似的,但是我没有看到在哪里实现这四行代码,而我个人试图将它放入我的脚本中的尝试都证明是徒劳的.
这个问题昨晚完全出乎问题.我今天要做演示,我无法让任何脚本工作.
像这样实例化我的WebDriver实例将导致NoSuchMethodError:
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.startup.homepage", "about:blank");
profile.setPreference("startup.homepage_welcome_url", "about:blank");
profile.setPreference("startup.homepage_welcome_url.additional", "about:blank");
driver = new FirefoxDriver(profile);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
Run Code Online (Sandbox Code Playgroud)
但摆脱profile在FirefoxDriver把它带回上面提到的firstrun页面.
我是公司的自动化工程师.最近,我写了一段我的经理绝对不接受的代码.
我被要求为涉及不同GUI的测试用例编写一些脚本.我的经理不接受的代码部分是一个if/else声明,用于检查GUI中提示的当前语言.
我被指示使用Sikuli,因此,我知道应用程序当前设置的语言非常重要,因此我的脚本可以单击正确的按钮(根据语言而改变).
我的想法是代码遍历if/else语句然后指向正确的按钮.示例:该if/else语句确定"ok"按钮当前是Suomi翻译,因此它将单击正确的按钮.
这是我的代码示例:
switch (button) {
case "ok":
if (s.exists("imagerepo/language/catalan_ok.png") != null) {
s.click("imagerepo/language/catalan_ok.png");
} else if (s.exists("imagerepo/language/suomi_ok.png") != null) {
s.click("imagerepo/language/suomi_ok.png");
} else if (s.exists("imagerepo/language/italian_ok.png") != null) {
s.click("imagerepo/language/italian_ok.png");
} else if (s.exists("imagerepo/language/portuguese_ok.png") != null) {
s.click("imagerepo/language/portuguese_ok.png");
} else if (s.exists("imagerepo/language/english_ok.png") != null) {
s.click("imagerepo/language/english_ok.png");
} else if (s.exists("imagerepo/language/dutch_ok.png") != null) {
s.click("imagerepo/language/dutch_ok.png");
} else if (s.exists("imagerepo/language/spanish_ok.png") != null) {
s.click("imagerepo/language/spanish_ok.png");
} else if (s.exists("imagerepo/language/french_ok.png") != null) {
s.click("imagerepo/language/french_ok.png");
} else …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种最有效的方式,使用脚本发送命令将apk同时(或迅速地一个接一个)加载到30台平板电脑上。实际上,我想将我所有的平板电脑都插入网络,运行到我的计算机上,并运行一个脚本,该脚本将遍历所有可识别的IP地址并将apk推送到它们。我想完全消除将任何平板电脑连接到USB的需要。这是最重要的部分。
我的理解是,这是可能的,但是我遇到了一个似乎找不到答案的问题。
我的设备中没有启用“通过网络/ wifi进行adb”的选项。它们都在Android版本4.4.2上。我似乎找不到有关此功能的任何注释,这些注释已添加到更高版本中。是这样吗
我写了一个小脚本,它接受我们公司收到的Epson打印机的默认IP地址,并根据要求自动更改.这是使用Selenium HtmlUnitDriver完成的.
脚本获取页面,插入新IP,然后提交它.因为一旦我们第二次提交IP就会更改,页面不再出现192.168.192.168,并且脚本不想完成.
以下是脚本:
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
public class Main {
public static void main(String[] args) {
// Creating a new instance of the HTML unit driver.
WebDriver driver = new HtmlUnitDriver();
driver.get("http://192.168.192.168/ctcpip.htm");
// Find and change the IP Address field.
WebElement element = driver.findElement(By.name("IpAddress"));
element.clear();
element.sendKeys("192.168.192.169");
element.submit();
// Reset the printer. This changes it's IP as well, causing the initial driver page to no longer exist.
WebElement reset = driver.findElement(By.name("Submit"));
reset.submit();
// …Run Code Online (Sandbox Code Playgroud) 我目前在我的脚本中有一个问题,我使用for循环迭代元素数组并检查它们在GUI中的存在.我的问题是for循环总是跳过数组的第一个条目.
我目前的脚本如下:
public class GUIFunctionality {
static Properties config = Data.getProperties("config");
static int Pass = 0;
static Screen s = new Screen();
@Test(priority = 0)
public static void loginGUI() {
WebDriver driver = AutomationWebDriver.getWebDriver("firefox", config.getProperty("url"));
// Test all GUI elements on login screen.
String[] login_elements = { "loginbutton.png", "logintitle.png", "smalllogo.png", "remembermechecked.png",
"signupbutton.png", "signuptitle.png", "changelanguage.png" };
ArrayList<String> passed = new ArrayList<String>();
ArrayList<String> failed = new ArrayList<String>();
for (String base : login_elements) {
String file = String.format("imagerepo/config/%s", base);
if (s.exists(file) …Run Code Online (Sandbox Code Playgroud) 我目前正在建立一个Appium平台,但找不到自己的ANDROID_HOME道路。我已将sdk下载并安装在中Users/User/Android/sdk。我的bash_profile样子是这样的:
export PATH=$PATH:/usr/local/bin
export JAVA_HOME=$/usr/libexex/java_home
export ANDROID_HOME=Users/User/Library/Android/sdk
PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform_tools
echo $ANDROID_HOME
Run Code Online (Sandbox Code Playgroud)
当我运行Appium Doctor时,出现以下错误消息:
? ANDROID_HOME is set but does not exist on the file system at "Users/Toast/Library/Android/sdk"
这就是Android Studio中定义的SDK的路径。我究竟做错了什么?
我在Bash脚本中评估字符串表达式时遇到问题.此代码段会查找已连接的平板电脑的显示大小并将其存储在其中$displaySize.什么echo $displaySize叫,它回声1280x800.
displaySize=$($adb_env -s $usb shell wm size | awk '{print $3}')
echo "$displaySize"
fifteen="1920x1080"
ten="1280x800"
if [ "$displaySize" == "$fifteen" ] ; then
echo "Configuring a 15\""
foo ; fi
if [ "$displaySize" == "$ten" ] ; then
echo "Configuring a 10\""
bar ; fi
Run Code Online (Sandbox Code Playgroud)
代码应该跳过$fifteen if块并在块中运行$ten if,但它目前都会跳过这两个块.我究竟做错了什么?
java ×3
android ×2
selenium ×2
adb ×1
arrays ×1
automation ×1
bash ×1
firefox ×1
if-statement ×1
networking ×1
path ×1
sikuli ×1