如何使用selenium vba单击网页上的复选框

如何使用selenium vba单击网页上的复选框,vba,selenium,firefox,web-scraping,Vba,Selenium,Firefox,Web Scraping,我有一个问题,如何使用SeleniumVBA点击网页上的复选框 下面是我要单击的屏幕截图 下面是html代码 内鲁尔 如果不选择CSS选择器选项,请尝试此选项 bot.Window.Maximize bot.FindElementByName("locArrVal").Click bot.Wait 1000 您可以使用下面的xpath获取复选框,这意味着:使用type=“checkbox”查找输入,使用文本“Nerul”查找父SPAN FindElementByCss通常更快,除非

我有一个问题,如何使用SeleniumVBA点击网页上的复选框

下面是我要单击的屏幕截图

下面是html代码


内鲁尔


如果不选择CSS选择器选项,请尝试此选项

bot.Window.Maximize

bot.FindElementByName("locArrVal").Click

bot.Wait 1000

您可以使用下面的xpath获取复选框,这意味着:使用type=“checkbox”查找输入,使用文本“Nerul”查找父SPAN


FindElementByCss
通常更快,除非使用IE,然后它取决于IE的哪个版本以及需要什么类型的遍历。

反复的测试已经证明,
FindElementByCss
findelementbypath
性能更好(注意:如果存在唯一的id,则按id选择始终是首选!)

Chrome
FireFox
中,使用CSS在不同的遍历路径上一致地进行了更快的匹配。他们在考虑CSS的情况下进行了优化,并提倡使用CSS选择器<代码>IE的变化更大,
XPath
的大多数实例的性能稍高一些,但有一些明确的路径支持
CSS
选择。长XPath选择器的成本很高,而且容易被破坏。较新版本的
IE
更具可变性<代码>操作12浏览器的结果好坏参半


我会使用CSS选择器:

因此,对于基于可能的唯一属性的简单选择,我将使用
[value='8897']
的属性CSS选择器来定位
属性。
[]
表示属性选择器。因此
value
属性的值为
8897

driver.FindElementByCss("[value='8897']").Click
如果希望更具选择性,可以添加一个额外的属性选择器,如下所示,以
类型
属性为目标

driver.FindElementByCss("[type=checkbox][value='8897']").Click

那么我什么时候应该使用XPath?

旧的IE版本是肯定的

任何向上移动DOM的要求都指向XPath的使用


XPath为难以找到的元素提供了一些很好的附加定位策略,但这在这里并不是必需的。您可以看到一些额外的注意事项。

您最初的不起作用的方法在哪里?我尝试这样做,但不起作用。FindElementByXPath(//input[contains(@name,'locArr[])]][contains(text(),'Nerul')])。单击它不起作用我收到错误运行时错误'11'元素不可见错误
driver.FindElementByCss("[type=checkbox][value='8897']").Click