Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法单击selenium中的提交按钮_Selenium_Xpath_Testng - Fatal编程技术网

无法单击selenium中的提交按钮

无法单击selenium中的提交按钮,selenium,xpath,testng,Selenium,Xpath,Testng,我在一家旅行社工作。一旦我填写了诸如来源地、目的地等详细信息,我就必须单击提交按钮。我尝试使用xpath单击submit按钮。但是,我不能屈服。应用程序单击submit的xpath后,将在内部加载。请参考屏幕截图 Selenium代码:java driver.findElement(By.xpath(“./[@id='ctl00\u cphMain\u TravelRequest1\u btnSubmit']”) 请检查图像 您能为本期提供您的html代码吗, 该代码中必须存在元素, 您应该使用

我在一家旅行社工作。一旦我填写了诸如来源地、目的地等详细信息,我就必须单击提交按钮。我尝试使用xpath单击submit按钮。但是,我不能屈服。应用程序单击submit的xpath后,将在内部加载。请参考屏幕截图

Selenium代码:java driver.findElement(By.xpath(“./[@id='ctl00\u cphMain\u TravelRequest1\u btnSubmit']”)

请检查图像

您能为本期提供您的html代码吗, 该代码中必须存在元素, 您应该使用submit()而不是单击submit元素

实际上,click()只在的submit按钮上起作用(您必须检查此条件),submit()对所有表单元素起作用,并执行类似按下Enter键的操作。 我希望这对你有用

driver.findElement(By.xpath(".//[@id='ctl00_cphMain_TravelRequest1_btnSubmit']")).submit();
或者试着用这个

driver.findElement(By.xpath(".//[@id='ctl00_cphMain_TravelRequest1_tpTravel_travel_gvTravel_ctl02_txtDuration']")).submit();
根据您的html代码,我们通过id获取元素

driver.findElement(By.Id("ctl00_cphMain_TravelRequest1_btnSubmit")).submit();

在您的情况下,提交按钮可能是可见的,但不可单击,如您在说明中所述。为此,您必须等待元素不能使用ExplicitWait方法单击。在“提交”按钮可单击后执行单击操作:

希望下面的代码能解决您的问题

WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.elementToBeClickable(By.xpath(".//[@id='ctl00_cphMain_TravelRequest1_btnSubmit']"))).click();
有时,
click()
方法不起作用。请尝试下面的代码一次,让我知道

WebElement Login=driver.findElement(By.id("ctl00_cphMain_TravelRequest1_btnSubmit"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", Login);

提交按钮的HTML代码:。。。。下面是submit按钮的xpath下面粘贴了submit按钮的路径。findElement(By.xpath(“./[@id='ctl00\u cphMain\u TravelRequest1\u btnSubmit']”)。单击();尝试使用submit()ok driver.findElement(By.xpath(“./[@id='ctl00\u cphMain\u TravelRequest1\u btnSubmit'])。submit();Hi ashish,对于前面的代码,我将O/P设置为-->无效选择器:无法找到带有xpath表达式的元素。//[@id='ctl00\u cphMain\u TravelRequest1\u btnSubmit'],原因是以下错误:语法错误:未能对“文档”执行“evaluate”:字符串。//[@id='ctl00\u cphMain\u TravelRequest1\u btnSubmit']“”不是有效的XPath表达式。(会话信息:chrome=69.0.3497.100)为什么即使元素id可用也要使用xpath?请为按钮添加相关HTML。它在IFRAME中吗?代码运行时会发生什么?有错误吗?如果是这样,请发布整个错误。嗨,Jeff,当我运行代码时,什么都没有发生。它正在添加旅行和目的地,但最后我想单击submit按钮。但是,我不能。请参考下一篇评论中的HTML代码。有三个按钮,保存、提交、重置,我想单击提交按钮。HTML代码是-->提交按钮的HTML:提交按钮的HTML代码:。。。。下面是代码的submit按钮的xpath。不幸的是,它不起作用。获取以下错误--->在等待元素可单击20秒后超时:By.xpath:./[@id='ctl00\u cphMain\u TravelRequest1\u btnSubmit']能否在问题中插入HTML页面代码?简化了代码。您使用的是临时变量,而不需要任何变量。@bhavind。HTML代码插入。请查看评论。你好@Kajal.d。谢谢,它正在工作。但问题是,当我单击“提交”时,会出现一个通知,我必须从该通知中选择“是”或“否”。在这里,当我单击submit按钮时,会出现通知,但通知会立即消失。