如何使用selenium vba单击网页上的复选框
我有一个问题,如何使用SeleniumVBA点击网页上的复选框 下面是我要单击的屏幕截图 下面是html代码如何使用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通常更快,除非
内鲁尔
如果不选择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