[英]Java Selenium - How to click on a button link element with no ID?
我一直試圖讓 WebDriver 通過 xpath 找到元素,並直接使用按鈕后面的 href 鏈接,但無濟於事。 到目前為止,這是我的代碼:
package mavensample;
import.java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class mavensample {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "chromedriverpath";
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.manage().deleteAllCookies();
driver.manage().timeouts().pageLoadTimeout(40, Timeunit.SECONDS);
driver.manage().timeouts().implicitlyWait(40, Timeunit.SECONDS);
driver.get("https://initialLink.net/");
driver.findElement(By.cssSelector("a[href='https://censoredlink.net/')]"));
}}
這是我在檢查時獲得的元素信息: a href="https://censoredlink.net/" class="btn btn-sm btn-light mb-1" target="_blank">QA
我通常會通過文本定位元素,但是對於不同的環境有多個不同的 QA 按鈕。 我嘗試使用 CssSelector 並直接輸入鏈接,但這也不起作用。
任何幫助深表感謝!
如果https://censoredlink.net/
是href
屬性的唯一值,您可以嘗試以下 XPath:
driver.findElement(By.xpath("//a[@href='https://censoredlink.net/']"))
或使用 CssSelector
driver.findElement(By.cssSelector("a[href='https://censoredlink.net/']"))
UPD
我猜你錯過了等待。 我的意思是你需要等待元素被加載才能訪問它。 最好的方法是使用WebDriverWait
。
也有可能該元素位於 iframe 等內部。
我們需要看到那個頁面......
您的css selector
中存在拼寫錯誤。 你需要刪除)
這個
而不是這個
driver.findElement(By.cssSelector("a[href='https://censoredlink.net/')]"));
應該是
driver.findElement(By.cssSelector("a[href='https://censoredlink.net/']"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.