Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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 webdriver Selenium webdriver脚本在成功登录后无法单击任何元素_Selenium Webdriver_Nosuchelementexception - Fatal编程技术网

Selenium webdriver Selenium webdriver脚本在成功登录后无法单击任何元素

Selenium webdriver Selenium webdriver脚本在成功登录后无法单击任何元素,selenium-webdriver,nosuchelementexception,Selenium Webdriver,Nosuchelementexception,我尝试了所有可能的元素定位器,但成功登录后,代码无法单击我希望它单击的元素。我发现以下错误: (1) 您的问题是:成功登录后,代码无法单击我希望它单击的元素。和 (2) 您已经使用了“NoTouchElementException”标记。 基于这两个事实,我推断您在这一行中遇到了错误: findElement(By.xpath(“html/body/div[6]/div/div/div[1]/div[1]/div[2]/div/a[1]/div”))。单击() 这将有助于理解问题,并确认我的上

我尝试了所有可能的元素定位器,但成功登录后,代码无法单击我希望它单击的元素。我发现以下错误:

(1) 您的问题是:成功登录后,代码无法单击我希望它单击的元素。和 (2) 您已经使用了“NoTouchElementException”标记。 基于这两个事实,我推断您在这一行中遇到了错误: findElement(By.xpath(“html/body/div[6]/div/div/div[1]/div[1]/div[2]/div/a[1]/div”))。单击()

这将有助于理解问题,并确认我的上述假设,如果你请张贴错误消息

问题的答案取决于您使用的元素定位器(xpath)是否正确。我猜xpath是不正确的,因为您可能得到了NoTouchElementException

您可以在Firefox浏览器中使用FirePath附加组件确认xpath是否正确。安装后,在最后一个名为“Firepath”的选项卡中输入xpath,然后按“enter”键。相应的元素(要单击的元素)应高亮显示。如果没有,那么xpath就不是它应该的样子

您还可以检查要单击的元素是否位于该页面的不同框架中。在这种情况下,您需要首先切换到该帧。那页上有不同的框架吗?您也可以使用Firepath来查看这一点

如果您确信(并且已经使用Firepath验证)xpath是正确的,那么请检查该元素是否按照该页面的源启用和显示

Webelement element = driver.findElement(By.xpath("xpath_of_that_element"));
System.out.println("The element is enabled: " + element.isEnabled());
System.out.println("The element is displayed: " + element.isDisplayed());
我猜上述两个打印语句中至少有一个会显示“false”

如果xpath是正确的,并且上面两个print语句显示为“true”,则尝试使用WebElement的getText()方法在该WebElement(要单击的)上打印文本。它成功了吗?我想不会的,因为你可能不会有什么例外


请注意:如果您得到的异常不是NoTouchElementException,您可以从问题中删除该标记。

那么错误在哪里?您试图单击的元素是什么?您可能需要等待元素出现/页面加载,然后再尝试单击它。
Webelement element = driver.findElement(By.xpath("xpath_of_that_element"));
System.out.println("The element is enabled: " + element.isEnabled());
System.out.println("The element is displayed: " + element.isDisplayed());