如何使用Selenium和Java定位元素
我没有在给定代码中识别定位器来执行自动化测试 元素的HTML:如何使用Selenium和Java定位元素,java,selenium,xpath,css-selectors,webdriverwait,Java,Selenium,Xpath,Css Selectors,Webdriverwait,我没有在给定代码中识别定位器来执行自动化测试 元素的HTML: <a href="https://www.amazon.in/ap/signin?openid.pape.max_auth_age=0&openid.retu…%2Fidentifier_select&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&" class="nav-a nav-a-2" data-nav-ref="nav_ya_sign
<a href="https://www.amazon.in/ap/signin?openid.pape.max_auth_age=0&openid.retu…%2Fidentifier_select&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&" class="nav-a nav-a-2" data-nav-ref="nav_ya_signin" data-nav-role="signin" data-ux-jq-mouseenter="true" id="nav-link-accountList" tabindex="25">
您可以使用下面的xpath来选择链接
//a[@class='nav-a nav-a-2' and @data-nav-role='signin']
或者你应该和他好好相处
//a[@data-nav-role='signin']
CSS定位器
a[data-nav-role='signin']
您可能正试图在文本为的元素上
单击()
,登录,为此,您需要:
- 鼠标悬停在元素上,文本为您的订单
System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://www.amazon.in");
new Actions(driver).moveToElement(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[@id='nav-tools']/a//span[@class='nav-line-2']")))).build().perform();
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//span[@class='nav-action-inner' and text()='Sign in']"))).click();
有一个id,因此使用它作为最快的选择器方法
#nav-link-accountList
看起来您正在尝试单击给定的锚元素下的第三个跨度元素。给出错误的XPath不适用于给定的元素 给定的元素有一个id。因此您可以通过id直接定位元素 使用ID:
Webdriver driver = new ChromeDriver();
driver.findElement(By.id("nav-link-accountList"));
使用Css选择器:
Webdriver driver = new ChromeDriver();
driver.findElement(By.cssSelector("#nav-link-accountList"));
Webdriver driver = new ChromeDriver();
driver.findElement(By.xpath("//*[@id='nav-link-accountList']"));
使用XPath:
Webdriver driver = new ChromeDriver();
driver.findElement(By.cssSelector("#nav-link-accountList"));
Webdriver driver = new ChromeDriver();
driver.findElement(By.xpath("//*[@id='nav-link-accountList']"));
欢迎来到SO。请提供一些您正在寻找的元素的html代码以及您迄今为止尝试过的代码。这将有助于其他贡献者帮助您。