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
Java 找不到锚标记具有onclick的元素_Java_Selenium - Fatal编程技术网

Java 找不到锚标记具有onclick的元素

Java 找不到锚标记具有onclick的元素,java,selenium,Java,Selenium,无法单击锚标记下的元素,该元素具有onclick代码。需要单击“提交”按钮 我提供了隐式等待,并使用了xpath、css选择器 <a onclick="if(validateSupplierANDLocation(4)){return saveorsubmitorder(4);}else{return false;};" id="ctl00_ContentPlaceHolder1_lnkSubmit" tabindex="35" href="javascript:WebForm_DoPos

无法单击锚标记下的元素,该元素具有onclick代码。需要单击“提交”按钮

我提供了隐式等待,并使用了xpath、css选择器

<a onclick="if(validateSupplierANDLocation(4)){return saveorsubmitorder(4);}else{return false;};" id="ctl00_ContentPlaceHolder1_lnkSubmit" tabindex="35" href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$ContentPlaceHolder1$lnkSubmit&quot;, &quot;&quot;, true, &quot;saveNexgenOrder&quot;, &quot;&quot;, false, true))"><img src="../images/tspacer.gif" alt="" width="10" height="1"><img id="imgOSubmit" border="none" src="../images/buttons/submit.gif" alt="Submit" title="Submit" style="cursor:pointer    "><img id="imgOReSubmit" border="none" src="../images/buttons/btn_re-submit.gif" alt="Submit" title="Submit" style="cursor: pointer; display: none;"></a>

<img src="../images/tspacer.gif" alt="" width="10" height="1">
<img id="imgOSubmit" border="none" src="../images/buttons/submit.gif" alt="Submit" title="Submit" style="cursor:pointer    ">
<img id="imgOReSubmit" border="none" src="../images/buttons/btn_re-submit.gif" alt="Submit" title="Submit" style="cursor: pointer; display: none;">

用于定位按钮的绝对路径不可靠,因为按钮的位置可能在DOM中更改。尝试使用相对xpath。 尝试调试到将元素存储在WebElement变量中的位置。如果这是您想要的元素,则执行click()操作。
WebElement var=driver.findElement(By…)


在某些情况下,如果单击操作不起作用,则必须使用JavascriptExecutor。请参阅链接

在从xpath中删除/img[2]后尝试相同的代码。
code: WebDriverWait wait = new WebDriverWait(driver, 20);
        WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//html[1]/body[1]/form[1]/div[4]/table[1]/tbody[1]/tr[3]/td[1]/div[1]/div[2]/div[1]/div[3]/a[1]/img[2]")));
        driver.findElement(By.xpath("//html[1]/body[1]/form[1]/div[4]/table[1]/tbody[1]/tr[3]/td[1]/div[1]/div[2]/div[1]/div[3]/a[1]/img[2]")).click();