无法使用Selenium单击链接 - Webdriver:Chrome:Win7
以下是我检查按钮时的代码:
a id =“continue_button”disabled =“false”class =“button button-large ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only”href =“#” role =“button”aria-disabled =“false”>
span class =“ui-button-text”> span class =“button-content”>继续
我尝试了以下方法,但没有任何作用:
driver.findElement(By.xpath("//*[@id='continue_button']")).click();
driver.findElement(By.xpath("//a[contains(..,'Continue')]")).click();
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.querySelector(\"a[id$='continue_button']\").click()");
答案 0 :(得分:1)
也许链接部分隐藏在DOM中。您可以尝试使用下面的代码段点击隐藏(或部分隐藏)元素。
WebElement element = driver.findElement(By.xpath("//a[@id='continue_button']));
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].click();", element);
答案 1 :(得分:0)
options=driver.find_elements_by_class_name("button-content")
for i in options:
if(i.text=="Continue"):
i.click()
上面的代码是在python中。通过转换为java来尝试上面的代码,我希望它能完美运行......任何疑问都让我知道。
答案 2 :(得分:0)
你可以试试这个,
new WebDriverWait(driver,60).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#continue_button span.button-content"))).click();
上面的代码将等待60秒的元素visibilty,如果找到,将点击元素,否则将抛出异常。
答案 3 :(得分:0)
if(driver.getTitle().contains("Error"))
driver.navigate().to("javascript:document.getElementById('overridelink').click()");
答案 4 :(得分:-1)
嘿,检查按钮是否位于框架内。