Selenium如何单击/访问具有JavaScript功能的带有href的标签

时间:2019-01-22 13:18:39

标签: selenium selenium-webdriver selenium-chromedriver

我进行了搜索,但还没有找到与我试图做的事情类似的事情。顺便说一下,我正在使用Java,我试图单击/访问带有硒的标签。问题是我不确定如何去做。我似乎需要启动一个功能/事件,但不确定如何操作。我尝试了几种获取文本和点击的方法,但是我知道那是行不通的。我也看到了使用JavascriptExecutor的方法,但不确定如何在我的情况下使用它。我将在下面发布标签以及函数签名,这可能会有所帮助。如果有类似问题,请发布链接。

<a name="DERIVED_SSS_SCL_SSS_ENRL_CART$276$" id="DERIVED_SSS_SCL_SSS_ENRL_CART$276$" ptlinktgt="pt_peoplecode" tabindex="203" onclick="javascript:cancelBubble(event);" href="javascript:submitAction_win0(document.win0,'DERIVED_SSS_SCL_SSS_ENRL_CART$276$');" class="SSSHYPERLINKBOLDSMALL">Enrollment Shopping Cart</a>

签名

function submitAction_win0(form, id, event)

2 个答案:

答案 0 :(得分:1)

您不需要任何JS。只需使用此xpath:

src/fmt/print.go

请确保该元素是可点击的,请参见

"//a[contains(@onclick,'javascript:cancelBubble(event);')]"

对于更多匹配项:

import org.openqa.selenium.support.ui.ExpectedConditions;

答案 1 :(得分:0)

编辑:

您应该使用WebDriverWait来避免NoSuchElementException,这样驱动程序将等待直到元素可单击为止……它将等待10秒钟,您可以告诉它如果需要的话可以等待更多时间……

WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.partialLinkText("Student Center")));
element.click();

使用click()

WebElement element = driver.findElement(By.cssSelector("a[class='SSSHYPERLINKBOLDSMALL']"));
element.click();

使用JavascriptExecutor(不推荐):

WebElement element = driver.findElement(By.cssSelector("a[class='SSSHYPERLINKBOLDSMALL']"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);

您也可以使用其他定位器……例如linkText

WebElement element = driver.findElement(By.linkText("Enrollment Shopping Cart"));

partialLinkText

WebElement element = driver.findElement(By.partialLinkText("Shopping Cart"));