public class Bwinbe {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "mypath");
WebDriver driver = new ChromeDriver();
driver.get("http://test.www.bwin.be/");
WebDriverWait wait = new WebDriverWait(driver,20);
driver.findElement(By.id("login-overlay-button")).click();
driver.findElement(By.id("username")).sendKeys("passport3");
driver.findElement(By.id("password")).sendKeys("qwe123");
driver.findElement(By.id("submit")).click();
}
}
运行时遇到异常。它无法按名称或ID找到元素
答案 0 :(得分:0)
点击登录按钮后,您可能需要等待一些时间。以下代码可能适合您。
public class Bwinbe {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "mypath");
WebDriver driver = new ChromeDriver();
driver.get("http://test.www.bwin.be/");
WebDriverWait wait = new WebDriverWait(driver,20);
driver.findElement(By.id("login-overlay-button")).click();
wait.until(ExpectedConditions.elementToBeClickable(By.id("username")));
driver.findElement(By.id("username")).sendKeys("passport3");
driver.findElement(By.id("password")).sendKeys("qwe123");
driver.findElement(By.id("submit")).click();
}
}
答案 1 :(得分:0)
正如我看到的页面您正在尝试自动化,您正尝试使用按钮登录。
您应该按以下元素搜索:
这是按钮html:
<a class="btn-s1" data-loading="Loading..." href="/en/authentication/loginoverlay" id="login-overlay-button" onclick="return false;" data-hasqtip="true" aria-describedby="qtip-0">LOG IN</a>
所以尝试用
搜索 <强> driver.findElement(By.className("btn-s1")).click();
强>
然后你必须切换到iFrame元素来输入用户名和密码:
这是第h帧:
<iframe id="bcx_local_storage_frame" src="https://assets.bounceexchange.com/assets/bounce/local_storage_frame9.min.html#2582" style="display: none;" kwframeid="1"></iframe>
命令将是这样的:
<强> driver.switchTo()帧。(&#34; bcx_local_storage_frame&#34); 强>
然后你的代码的其余部分
driver.findElement(By.id("username")).sendKeys("passport3");
driver.findElement(By.id("password")).sendKeys("qwe123");
driver.findElement(By.id("submit")).click();
希望这有帮助,