Tag: selenium chromedriver

未知错误:调用函数结果缺少’值’Appium Hybrid App

在向某些字段发送密钥时我有问题 driver.findElement(By.xpath(“//*[@id=\”login-main\”]/a”)).click(); Thread.sleep(1000); driver.findElement(By.xpath(“/html/body/div[2]/ion-nav-view/ion-view/login-popup/ion-pane/ion-content/div/form/label[2]/input”)).sendKeys(“Example”); 我将上下文设置为“driver.context(”WEBVIEW _ ********“);”,我可以单击应用程序中的按钮,但是无法将键放入字段中,它会在第一次发生,上周它正在工作。 错误是: Exception in thread “main” org.openqa.selenium.WebDriverException: unknown error: call function result missing ‘value’ (Session info: chrome=65.0.3325.109) (Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 10.0.16299 x86_64) (WARNING: The server did not provide any stacktrace information) 我尝试在CMD中使用“npm install -g chromedriver”更新chromeDriver,但chromeDriver没有更新到2.36这是最新版本。 我查了另外一个问题,他们有同样的问题,但我认为问题是我无法更新chromeDriver

如何使用Java获得chromedriver进程PID?

我遇到了一个问题。 有时,在我的JUnit测试运行时,命令webDriver.quit(); 是不是杀死chromedriver进程所以下一个测试无法启动。 在这种情况下,我想添加一些可能在Linux上手动杀死进程的方法,但我无法弄清楚如何获得chromedriver的PID,所以我可以做类似的事情:Runtime.getRuntime()。exec(KILL + PID);

Chrome参数不起作用

谁知道为什么chrome参数不起作用? import java.net.MalformedURLException; import java.net.URL; import java.util.Arrays; import org.openqa.selenium.WebDriver; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.RemoteWebDriver; public class testowa { public static void main(String[] args) throws InterruptedException { DesiredCapabilities capability = DesiredCapabilities.chrome(); capability.setCapability(“chrome.args”, Arrays.asList(“–disable-web-security”, “–start-maximized”)); WebDriver driver = null; try { URL hub_url = new URL(“http://192.168.56.101:4444/wd/hub”); driver = new RemoteWebDriver(hub_url, capability); } catch (MalformedURLException e) { e.printStackTrace(); } […]

如何通过selenium-webdriver和Java使用java鼠标hover

在尝试自动化门户网站http://demo.nopcommerce.com/时 ,无法选择鼠标hover在“Electornics”菜单上并选择“相机和照片”子菜单。 使用下面的脚本也是如此。 WebElement electronic_Pdts = driver.findElement(By.xpath(“//*[@class=’title’]//*[@title=’Show products in category Electronics’]”)); action.moveToElement(electronic_Pdts).build().perform(); driver.findElement(By.xpath(“//*[@src=’http://sofzh.miximages.com/java/0000006_camera-photo_450.jpg’]”)).click();

使用Seleniumvalidation之间的文本

我需要validation网页上的特定插槽是否已加载。 我在main()函数中使用Selenium WebDriver(我应该使用JUnit测试用例吗?)。 在具有特定ID的任何 之间检索文本的方法有哪些? 如果给出此页面 : Make money by Selling items on Amazon Selling On Amazon Sell your items on Amazon.com. Amazon can help you grow your business and reach more customers. 当给出 ,我需要提取 “通过在亚马逊上销售商品来赚钱”, “在亚马逊上卖”, “在Amazon.com上销售您的商品。亚马逊可以帮助您拓展业务并吸引更多客户。” 我应该使用哪种方法?

java.lang.NoSuchMethodError:com.google.common.base.Preconditions.checkState(ZLjava / lang / String;),包含Selenium,gradle和ChromeDriver

我正在尝试使用Selenium api和Gradle。 这是我的build.gradle依赖部分: dependencies { compile ‘com.google.api-client:google-api-client:1.23.0’ compile ‘com.google.oauth-client:google-oauth-client-jetty:1.23.0’ compile ‘com.google.apis:google-api-services-sheets:v4-rev506-1.23.0’ compile group: ‘org.seleniumhq.selenium’, name: ‘selenium-java’, version: ‘2.9.0’ compile group: ‘org.seleniumhq.selenium’, name: ‘selenium-chrome-driver’, version: ‘2.9.0’ } 我的selenium – Java代码: System.setProperty(“webdriver.chrome.driver”, “C:\\Program Files(x86)\\Google\\Chrome\\Application\\chrome.exe”); WebDriver driver = new ChromeDriver(); 代码工作正常,我可以打开Chrome浏览器。 但是,在build.gradle中,我使用的是2.9.0版本的selenium和chromedriver。 如果我尝试在2.9.0之后使用任何版本,它会在WebDriver driver = new ChromeDriver()中给出以下错误: 方法: Exception in thread “main” java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:124) at org.openqa.selenium.chrome.ChromeDriverService.access$000(ChromeDriverService.java:32) […]

无头地在Ubuntu Server上运行Chromedriver

我在Java(1.8)中使用Selenium和Chromedriver进行一些自动网络爬行: System.setProperty(“webdriver.chrome.driver”, “chromedriver.exe”); WebDriver driver = new ChromeDriver(); driver.get(“someurl.com”); 我正在尝试迁移到Ubuntu 16.04服务器。 在服务器上,我安装了Ubuntu chromedriver版本2.37,chrome版本65.根据chromedriver文档,这些版本是兼容的。 我已经更改了指定Ubuntu中chromedriver位置的代码: System.setProperty(“webdriver.chrome.driver”, “/usr/lib/local/chromedriver”); 在运行我的程序之前,我启动了xvfb: Xvfb -ac :99 -screen 0 1280x1024x16 & export DISPLAY=:99 然后执行我的程序: java -jar myprogram.jar 以下内容将打印到控制台: Starting ChromeDriver 2.37.544315 (730aa6a5fdba159ac9f4c1e8cbc59bf1b5ce12b7) on port 10574 Only local connections are allowed. Exception in thread “main” org.openqa.selenium.WebDriverException: unknown error: Chrome failed to start: exited […]

Selenium Select – 选择部分文本的下拉选项

Selenium Select类有3种不同的选项选择方法: selectByIndex selectByValue selectByVisibleText 现在,我有一种情况,我希望通过某些文本选择一个选项,该文本部分出现在其中一个选项可见文本中(不想让自己暴露于整个文本中的更改)。 例如: VERY-LONG-TEXT-THAT-I-NEED-TO-SELECT-DOLLAR 我只想通过提供“DOLLAR”来选择此选项,例如: select.selectByPartOfVisibleText(“DOLLAR”) 你会如何有效地实施它?

如何通过除“class”和“name”之外的属性直接查找WebElements(例如“title”)

我是Java和Selenium的新手,所以如果我的问题听起来有些重要,我会提前道歉。 我用: driverChrome.findElements(By.className(“blabla”)); 查找具有“blabla”作为其className的元素,例如: … 现在,如果我想通过其他属性查找所有元素,该怎么办? 就像是: driverChrome.findElements(By.titleValue(“the title”)); 这是我目前用于执行此任务的代码: List spans = driverChrome.findElements(By.tagName(“span”)); for (WebElement we : spans) { if (we.getAttribute(“title”) != null) { if (we.getAttribute(“title”).equals(“the title”)) { … break; } } } 但它并不快速且易于使用。

Selenium ChromeDriver:增加获取WebElement Text的时间

我有一个代码,我遍历表行和列,我想将它的值添加到列表中。 这花了我很多时间。 所以我添加了时间测量,我注意到由于某种原因,时间从行到行增加。 我不明白为什么。 你能告诉我吗? private void buildTableDataMap() { WebElement table = chromeWebDriver.findElement(By.id(“table-type-1”)); List rows = table.findElements(By.tagName(“tr”)); theMap.getInstance().clear(); String item; for (WebElement row : rows) { ArrayList values = new ArrayList(); List tds = row.findElements(By.tagName(“td”)); if(tds.size() > 0){ WebElement last = tds.get(tds.size() – 1); long time = System.currentTimeMillis(); values.addAll(tds.stream().map(e->e.getText()).collect(Collectors.toList())); System.out.println(System.currentTimeMillis() – time); //remove redundant last […]