我进行了搜索,但还没有找到与我试图做的事情类似的事情。顺便说一下,我正在使用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)
答案 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"));