我正在尝试使用java selenium运行此脚本,我收到错误:"未知错误:元素在点(1142,356)处无法点击&# 34; 请参阅以下代码:
wd.get("https://login.yahoo.com/?.src=ym&.intl=us&.lang=en-
US&.done=https%3a//mail.yahoo.com");
WebElement e = wd.findElement(By.xpath(".//*[@type='text']"));
e.sendKeys("abcd");
wd.findElement(By.xpath(".//*@id='yui_3_18_1_11_1474955984806_126']'))]")).c lick();
网页中的实际HTML代码:
<input id="persistent" class="checkbox" type="checkbox" checked="" tabindex="3" value="y" name=".persistent">
<label for="persistent" id="yui_3_18_1_11_1474987692298_128">Stay signed in</label>
任何人都可以帮助我如何选择/取消选中附加到标签标签时的复选框。
答案 0 :(得分:0)
您提到的xpath无效。试试下面的xpath
wd.findElement(By.xpath(".//*[@id='yui_3_18_1_11_1474955984806_126']")).click();
您在[
@id
答案 1 :(得分:0)
其实你是想点击<label>
元素而不是<input id="persistent" class="checkbox" type="checkbox" checked="" tabindex="3" value="y" name=".persistent">
元件。您应该尝试使用checkbox
找到By.id()
元素,如下所示: -
wd.findElement(By.id("persistent")).click();
或者,如果您想点击<label>
元素,请尝试使用By.cssSelector()
,如下所示: -
wd.findElement(By.cssSelector("label[for = 'persistent']")).click();
答案 2 :(得分:0)
最后它正在使用xpath
wd.findElement(By.xpath(".//label[@for='persistent']")).click();
这里我们应该将label标签及其属性作为目标。因此,我们可以轻松访问该元素。
答案 3 :(得分:0)
WebDriver wd = null;
wd = new FirefoxDriver();
//Open website page
wd.get("https://login.yahoo.com/?.src=ym&.intl=us&.lang=en-US&.done=https%3a//mail.yahoo.com");
Thread.sleep(2000);
WebElement e = wd.findElement(By.xpath("//*[@type='text']"));
e.sendKeys("abcd");
wd.findElement(By.xpath("//*[@id='persistency']/div/label")).click();
Thread.sleep(1000);
wd.findElement(By.xpath("//*[@id='persistency']/div/label")).click();
此代码可以使用。因为我已经尝试过并且运行成功。