Java Selenium找不到输入类型submit
我有一个表单,其中包含selenium查找并填充ok的一些输入类型“text”。但是,在表单上找不到输入类型submit,结构如下所示:Java Selenium找不到输入类型submit,java,selenium,selenium-webdriver,webdriver,Java,Selenium,Selenium Webdriver,Webdriver,我有一个表单,其中包含selenium查找并填充ok的一些输入类型“text”。但是,在表单上找不到输入类型submit,结构如下所示: <div> <div> <form> <div>other elements are here....</div> <p> <input class="btn btn-success" type="submit" name="yt0" value="Re
<div>
<div>
<form>
<div>other elements are here....</div>
<p> <input class="btn btn-success" type="submit" name="yt0" value="Register Now" /></p>
</form>
</div>
<div>
还尝试:
driver.findelement(By.name("yt0")).submit();
我可以在页面上清楚地看到元素,selenium已经输入了提交上方元素所需的所有文本
Selenium是否可能因为submit包含在div的层次结构中而找不到它?感谢Selenium可以找到上述元素,从您提供的信息中,我看不出它为什么不能点击它。你试过不同的定位器吗 一个例子是:
driver.findElement(By.className("btn-success")).click();
或者你可以看看其他人
还有一些其他可能发生的事情是当selenium单击按钮时该按钮被禁用,或者该按钮仅在填写表单后出现?如果是这样的话,您需要添加一个线程来启用它(或者在等待之前使用thread.sleep(500)来测试它是否工作)。Selenium可以找到上面的元素,从您提供的信息中,我看不出它为什么不能单击它。你试过不同的定位器吗 一个例子是:
driver.findElement(By.className("btn-success")).click();
或者你可以看看其他人
还有一些其他可能发生的事情是当selenium单击按钮时该按钮被禁用,或者该按钮仅在填写表单后出现?如果是这样的话,您需要添加一个线程来启用它(或者在等待之前使用thread.sleep(500)来测试它是否工作)。您的代码看起来不错。但是请检查提交是否隐藏如果元素隐藏,我们必须使用Javascript来单击隐藏的元素。但在此之前,请尝试使用其他定位器,而不是名称。请尝试xpath。您的代码看起来不错。但是请检查提交是否隐藏如果元素隐藏,我们必须使用Javascript来单击隐藏的元素。但在此之前,请尝试使用其他定位器,而不是名称try xpath。另一种可能是元素出现在DOM中,但它还不可单击。 也许您可以尝试学习并实现显式等待 这是一个很好的样品
希望这有帮助:D另一种可能是元素出现在DOM中,但它还不能单击。 也许您可以尝试学习并实现显式等待 这是一个很好的样品
希望这有帮助:DSelenium通常比页面加载速度更快,例如,您单击了一个链接,它会占用您另一个页面。并不总是存在隐式等待,也许您需要等待元素变得可见 这可以通过,请参阅下面的代码
import import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
WebDriverWait wait = new WebDriverWait(driver, seconds);
wait.until(ExpectedConditions.visibilityOfElementLocated(By
.className(className)));
另一个选项是使用,如果输入
被隐藏,这有助于使用Javascript更改属性
请记住,有时您需要等待一个元素,最好有一个带有静态方法的helper类,这样您就可以轻松地调用这些方法,而无需重写代码,下面是一个示例方法
public static void waitForVisibilityByClass(WebDriver driver,
String className, int seconds) {
WebDriverWait wait = new WebDriverWait(driver, seconds);
wait.until(ExpectedConditions.visibilityOfElementLocated(By
.className(className)));
}
如果没有帮助,请告诉我。Selenium通常比页面加载速度快,例如,您单击了一个链接,它会带您进入另一个页面。并不总是存在隐式等待,也许您需要等待元素变得可见 这可以通过,请参阅下面的代码
import import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
WebDriverWait wait = new WebDriverWait(driver, seconds);
wait.until(ExpectedConditions.visibilityOfElementLocated(By
.className(className)));
另一个选项是使用,如果输入
被隐藏,这有助于使用Javascript更改属性
请记住,有时您需要等待一个元素,最好有一个带有静态方法的helper类,这样您就可以轻松地调用这些方法,而无需重写代码,下面是一个示例方法
public static void waitForVisibilityByClass(WebDriver driver,
String className, int seconds) {
WebDriverWait wait = new WebDriverWait(driver, seconds);
wait.until(ExpectedConditions.visibilityOfElementLocated(By
.className(className)));
}
如果没有帮助,请告诉我。表格是必须提交的表格 使用
希望有帮助。表格是必须提交的表格 使用
希望有帮助。我尝试过使用click()并成功。让它等待元素出现在页面上,有时selenium尝试过使用click()并成功。让它等待元素出现在页面上,有时selenium尝试过快速在答案中添加不必要的链接。不要在答案中添加不必要的链接。