Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.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
C# Selenium:使用C获取元素的动态坐标#_C#_Selenium Webdriver - Fatal编程技术网

C# Selenium:使用C获取元素的动态坐标#

C# Selenium:使用C获取元素的动态坐标#,c#,selenium-webdriver,C#,Selenium Webdriver,使用IWebElement.Location,我可以得到元素左上角相对于页面左上角的坐标 但是这个位置没有告诉我元素在当前浏览器窗口中的位置,也就是说,它是在屏幕外还是在屏幕上,如果是在屏幕上,那么它是靠近顶部、底部还是中部等等。有没有办法在C#中获取这些信息 谢谢 编辑: 在上下文中,我试图解决的问题是这样的: 1.创建Selenium WebDriver实例并转到页面 2.单击目录表上的链接,如Selenium IDE。 我需要验证单击链接是否会将我带到页面上的Selenium IDE部分,

使用
IWebElement.Location
,我可以得到元素左上角相对于页面左上角的坐标

但是这个位置没有告诉我元素在当前浏览器窗口中的位置,也就是说,它是在屏幕外还是在屏幕上,如果是在屏幕上,那么它是靠近顶部、底部还是中部等等。有没有办法在
C#
中获取这些信息

谢谢

编辑:
在上下文中,我试图解决的问题是这样的:
1.创建Selenium WebDriver实例并转到页面
2.单击目录表上的链接,如Selenium IDE。

我需要验证单击链接是否会将我带到页面上的Selenium IDE部分,即Selenium IDE部分现在显示在浏览器窗口顶部附近。

早就应该显示您正在查找的内容

driver.FindElement(By.Id("MyID")).Displayed
或者,在您的情况下:

IWebElement.Displayed;

也许这就是你想要的答案。您可能必须依赖javascript。以下是我的想法:

或者,等等!你可以用纯硒来做这个。(与链接中的基本思想相同。)

  • 获取元素的位置,您知道:IWebElement.Location
  • 获取浏览器窗口信息 A.获取窗口的大小:IWebDriver.Manage().window.size B如果这不起作用,则必须使用(IJavaScriptExecutor)IWebDriver.ExecuteScript(“参数[0].scrollTop”,IWebElement);或者与Firefox控制台命令
    $(window.scrollTop()
  • 计算一下:窗口大小x-浏览器信息x。窗口大小y-浏览器信息y
  • 如果是负片,就在屏幕上方。如果是正数,但大于窗口大小,则屏幕显示为低
    IWebElement.Displayed
    返回true,无论该元素是在屏幕上还是在屏幕外。那对我没什么帮助。我想知道元素在当前显示屏幕中的位置。我想要类似于
    IWebElement.Location
    的东西,但随着我向上或向下滚动页面,它会发生变化。