点击Href按钮



我在过去已经删除了一个Href按钮,并没有发现它太难,但这个按钮是一个痛苦。我尝试过通过xpath、类和链接文本单击。但没有一个奏效。我知道有很多同样的问题,但其中大多数给出的答案我已经在尝试了。下面是我的代码。我没有尝试过的一件事是javascriptexecutor。我也一直在点击它在chrome的命令行,它确实工作。只是不能得到硒。它抛出一个未找到的元素。此外,我觉得值得注意的是,我没有找到任何我需要切换到的iframe。唯一让我担心的事情,也许我没有硒的知识来处理的是HTML提到header,main,section,div,ul,lia,除了ulli,我以前都见过。谢谢你提供的任何帮助。

wait.Until(ExpectedConditions.ElementToBeClickable(By.ClassName("card-header-link float-md-right"))).Click();
wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("/html/body/div[1]/main/section[1]/div/ul/li[5]/a"))).Click(); //full xpath
wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("//*[@id='app']/main/section[1]/div/ul/li[5]/a"))).Click();
wait.Until(ExpectedConditions.ElementToBeClickable(By.LinkText("Security"))).Click();

HTML

<li data-v-91f16f3e="">
<a data-v-91f16f3e="" href="/security" class="">
<span data-v-91f16f3e="" class="icon icon-shield"></span> 
<span data-v-91f16f3e="" class="text">Security</span></a>
</li>

试试这个xpath:

//span[text()='Security']/..

//span[text()='Security']/parent::a[@href='/security']

wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("//span[text()='Security']/.."))).Click();

但奇怪的是,By.LinkText("Security")没有工作。

Update 1:

试试这个css选择器

div[class$='desktop'] li a[href$='security']

代码:

wait.Until(ExpectedConditions.ElementToBeClickable(By.CssSelector("div[class$='desktop'] li a[href$='security']"))).Click();

我看到href属性值是小写的security,而不是Security.
所以,请试试这个:

wait.Until(ExpectedConditions.ElementToBeClickable(By.Xpath("//a[contains(@href,'security')]"))).Click();

最新更新