硒和自动热键 - 如何获取表格行/列的大小?



我一直在研究几个小时但没有成功

我只需要 Autohotkey 的语法来获取表格行/列的大小

我正在遵循本指南 https://www.guru99.com/handling-dynamic-selenium-webdriver.html

在其他语言中,他们建议这样做:

WebElement tbody = driver.findElement(By.xpath("//div[@class='z-listbox-body']/table/tbody"));
List<WebElement> rows = tbody.findElements(By.xpath("tr"));
totalrows = rows.size();

请注意,他们使用"List"将变量转换为List类型,问题是,在AHK中没有变量类型定义,它应该是自动的,但显然不是在这种情况下

这是我正在测试的页面,但无法使其工作 http://demo.guru99.com/test/web-table-element.php#

我只需要知道它有多少行和/或列,它应该像这样简单:

MsgBox %  ""  oChrome.findElementByXpath("//*[@id='leftcontainer']/table/thead/tr/th").size()

(未给出错误,但不显示任何值(

甚至这个,就像他们建议的那样(如何使用Selenium WebDriver和Autohotkey获取HTML中的元素总数?

MsgBox %  ""  oChrome.findElementByXpath("//*[@id='leftcontainer']/table/thead/tr/th").Count()

(错误:未知名称,具体为:计数(

目标是拥有列数(在本例中为 5 列(和行数(26 行(,以便进一步 For Each 并遍历每行的值

我将不胜感激任何建议,谢谢!

完整代码

oChrome := ChromeGet() ; Object for Chrome
MsgBox %  ""  oChrome.findElementByXpath("//*[@id='leftcontainer']/table/thead/tr/th").Size() ; FAIL
MsgBox %  "Finish" 
return
ChromeGet(IP_Port := "127.0.0.1:9222") {
oChrome := ComObjCreate("Selenium.ChromeDriver")
oChrome.SetCapability("debuggerAddress", IP_Port)
oChrome.Start()
return oChrome
}

啊,所以,经过几天的研究,我注意到一件更大的事情,我需要使用:

.findElementsByXpath()

而不是:

.findElementByXpath()

我在查看这篇 Selenium 文档 for Python 时注意到了这一点: https://selenium-python.readthedocs.io/locating-elements.html

这让我对它上的额外"s"产生了影响,所以,就是这样!我还使用了 Count((。 它属于一个简单的逻辑(现在我意识到了常识(,findElementsByXpath((,正如文档所说,搜索多个元素值,而不仅仅是一个,这样您就可以使用".Count((" 来搜索节点中的子节点总数,例如 因此,对我有用的结束代码如下:

oChrome := ChromeGet() ; Object for Chrome
MsgBox %  ""  oChrome.findElementsByXpath("//*[@id='leftcontainer']/table/thead/tr/th").Count() 
MsgBox %  "Finish" 
return
ChromeGet(IP_Port := "127.0.0.1:9222") {
oChrome := ComObjCreate("Selenium.ChromeDriver")
oChrome.SetCapability("debuggerAddress", IP_Port)
oChrome.Start()
return oChrome
}

相关内容

  • 没有找到相关文章

最新更新