我正在使用Selenium,我希望能够单击以下内容
<a ng-click="download()">download</a>'
这是一个“ a”标签。 我不确定代码如何单击进入带有ng-click的'a'标签。
Dim d As WebDriver
Set d = New ChromeDriver
Const URL = "url of the website - not public"
With d
.Start "Chrome"
.get URL
.Window.Maximize
.FindElementById("Search").SendKeys "information to search"
.Wait 1000
.FindElementById("Submit").Click
.Wait 1000
'then I need to click the following <a ng-click="download()">download</a>
End With
我唯一想念的就是能够单击最后一点。谢谢您的提前帮助:)
答案 0 :(得分:1)
您可以尝试使用.FindElementByXPath("//*[@ng-click='download()']").Click
:
@php $title = env('APP_NAME'); @endphp
@section('project_title', $title)
答案 1 :(得分:1)
这就是attribute = value CSS选择器的作用。您可以通过其值来定位ng-click
属性:
d.FindElementByCss("[ng-click='download()']").click
答案 2 :(得分:1)
所需元素是Angular元素,您需要为 elementToBeClickable 引入 WebDriverWait ,并且可以使用以下Locator Strategies中的任何一个:
使用FindElementByCss
:
d.FindElementByCss("a[ng-click^='download']").click
使用FindElementByXPath
:
d.FindElementByXPath("//a[starts-with(@ng-click, 'download') and text()='download']").click
答案 3 :(得分:0)
查看更多相关的HTML代码会更容易(并且效率更高),但是您可以循环使用a
标签,并找到包含文本download
的标签。找到后,您可以尝试单击它,然后退出循环。
Dim a As Selenium.WebElement
For Each a In d.FindElementsByTag("a")
If a.Text = "download" Then
a.Click
Exit For
End If
Next