使用Selenium Web Driver访问诸如rows,childNodes之类的表属性

时间:2016-12-08 22:59:00

标签: selenium

我正在尝试使用selenium web驱动程序访问(属性是您在Chrome浏览器开发人员工具中可以看到的,当您在浏览器上突出显示表格控件时)表格对象的属性。我的要求是访问诸如rows和childNodes之类的表属性。我使用下面的代码来获取表的属性。

var propVlu = tblObj.GetAttribute("baseURI");               
Console.WriteLine(propVlu.ToString());     

这里代码的输出正是我想要的:

 Test Name: TblIterateDemo
 Test Outcome:  Passed
 Result StandardOutput:    
http://testbpp.corum.com.au/main/(S(2zpcwh5e2xp4wfkbkhvxranb))/Customer.aspx

但是如果我尝试访问具有如下所示的树结构的属性:

var propVlu = tblObj.GetAttribute(@"rows[""0""].baseURI");   
if(propVlu  != null)
{        
  Console.WriteLine(propVlu.ToString()); 
} 
else
{
   Console.WriteLine("Property not found");
}

我得到以下输出

 Property not found

有人可以帮助我访问属于浏览器上的Web控件控件的这些属性。请查找包含图片的附件。当我在Chrome浏览器开发者工具属性标签上检查时,属性行存在且也不为空。

Image of my Question Description

欢呼声, 巴勒特。

2 个答案:

答案 0 :(得分:0)

Selenium C#,chrome驱动程序返回以下属性的空值。这里的rows属性也返回null,所以显然你会得到

  

对象引用未设置为对象的实例   在C#代码中出现问题。

Attribue : assignedSlot value : Null value from Selenium
Attribue : attributes value : Null value from Selenium
Attribue : caption value : Null value from Selenium
Attribue : childNodes value : Null value from Selenium
Attribue : children value : Null value from Selenium
Attribue : classList value : Null value from Selenium
Attribue : dataset value : Null value from Selenium
Attribue : draggable value : Null value from Selenium
Attribue : firstChild value : Null value from Selenium
Attribue : firstElementChild value : Null value from Selenium
Attribue : hidden value : Null value from Selenium
Attribue : isContentEditable value : Null value from Selenium
Attribue : lastChild value : Null value from Selenium
Attribue : lastElementChild value : Null value from Selenium
Attribue : nextElementSibling value : Null value from Selenium
Attribue : nextSibling value : Null value from Selenium
Attribue : nodeValue value : Null value from Selenium
Attribue : offsetParent value : Null value from Selenium
Attribue : ownerDocument value : Null value from Selenium
Attribue : parentElement value : Null value from Selenium
Attribue : parentNode value : Null value from Selenium
Attribue : prefix value : Null value from Selenium
Attribue : previousElementSibling value : Null value from Selenium
Attribue : previousSibling value : Null value from Selenium
Attribue : rows value : Null value from Selenium
Attribue : shadowRoot value : Null value from Selenium
Attribue : tBodies value : Null value from Selenium
Attribue : tFoot value : Null value from Selenium
Attribue : tHead value : Null value from Selenium



List<string> props = File.ReadAllLines(@"C:\Users\muralidharand\Desktop\prop.txt").ToList();
            IWebDriver driver = new ChromeDriver();
            driver.Url = "http://localhost:801/mywebapp/Create?jobid=4";
            driver.Navigate();
            IWebElement atrWF = driver.FindElement(By.Id("tblParticulars"));
            foreach (string prop in props)
            {
                string result = atrWF.GetAttribute(prop);
                if (result == null)
                {
                    result = "Null value from Selenium";
                    File.AppendAllText(@"C:\Users\muralidharand\Desktop\prop_output.txt", "Attribue : " + prop + " value : " + result + Environment.NewLine);
                }
            }

希望这会对你有所帮助。

答案 1 :(得分:0)

我终于找到了解决它的方法,我已经完成了以下操作来访问表对象的rows属性:

var contents = ((IJavaScriptExecutor)drivr).ExecuteScript("return arguments[0].rows.length; ", tblObj);
Console.WriteLine(contents.ToString());

我从这个地方得到了一些帮助 http://grokbase.com/t/gg/selenium-users/128dp25q60/how-to-get-all-html-attributes-for-a-tag