我是 Selenium 的新手,目前正在學習。我正在嘗試在 selenium 中打開頁腳鏈接,但它不適用于https://byjus.com/或https://www.amazon.in我已經嘗試使用 Action 類以及通過將元素滾動到視圖中的 Javascript。有人可以幫我實作它。提前致謝。
package WebApps;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class mmt {
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
System.setProperty("webdriver.chrome.driver", "D:\\Nav QA Workspace\\Browser Drivers\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.get("https://byjus.com/");
WebElement footerDriver = driver.findElement(By.xpath("//div[@class='universal-footer']"));
WebElement links = footerDriver.findElement(By.xpath("//div/div/div/div/div[1]/ul"));
System.out.println(links.findElements(By.tagName("a")).size());
for (int i = 0; i < 5; i ) {
String linksToOpen = Keys.chord(Keys.CONTROL, Keys.ENTER);
System.out.println(links.findElements(By.tagName("a")).get(i).getText());
// System.out.println(links.findElements(By.tagName("li")).get(i).getText());
// links.findElements(By.tagName("a")).get(i).sendKeys(linksToOpen);
}
/*
* Amazon.in facing problem here too
*
*
* System.setProperty("webdriver.chrome.driver",
* "D:\\Nav QA Workspace\\Browser Drivers\\chromedriver.exe"); WebDriver driver
* = new ChromeDriver(); driver.manage().timeouts().implicitlyWait(15,
* TimeUnit.SECONDS); driver.get("https://www.amazon.in/"); //
* div.makeFlex.appendBottom40.footerLinks WebElement footerDriver =
* driver.findElement(By.cssSelector(
* "div.navFooterVerticalColumn.navAccessibility"));
* System.out.println(footerDriver.isDisplayed()); WebElement links =
* footerDriver.findElement(By.xpath("//div/div[1]/ul"));
* System.out.println(links.findElements(By.tagName("a")).size());
*
* for(int i=0;i<links.findElements(By.tagName("a")).size();i ) { String
* linksToOpen = Keys.chord(Keys.CONTROL,Keys.ENTER);
* System.out.println(links.findElements(By.tagName("a")).get(i).isEnabled());
* System.out.println(links.findElements(By.tagName("li")).get(i).getText()); //
* links.findElements(By.tagName("a")).get(i).sendKeys(linksToOpen); }
*/
}
}
uj5u.com熱心網友回復:
我使用不同的定位器型別 XPath 進行了測驗。它完全可以正常作業,沒有任何錯誤。您會嘗試使用 XPath 而不是 CSS 單擊嗎?
driver.get("https://www.amazon.in/");
WebElement footerDriver = driver.findElement(By.xpath("//div[@class='navFooterVerticalRow navAccessibility']"));
footerDriver.findElement(By.xpath(".//a[text()='About Us']")).click();
uj5u.com熱心網友回復:
迭代這個xpath就足夠了"//div[@class='row footer-align footer-mobile-res']//div[1]//ul[1]//a"
我已經通過 WATIR 完成了,你可以在 Java Selenium 中做同樣的事情
require 'watir'
b=Watir::Browser.new
b.goto 'https://byjus.com/'
b.elements(xpath: "//div[@class='row footer-align footer-mobile-res']//div[1]//ul[1]//a").each do |a|
p a.text
end
如果您想單擊這些鏈接并想在另一個選項卡中打開,那么
b.elements(xpath: "//div[@class='row footer-align footer-mobile-res']//div[1]//ul[1]//a").each do |a|
a.click(:control, :enter)
end
輸出
"CBSE"
"ICSE"
"CAT"
"IAS"
"JEE"
"NEET"
"Commerce"
"JEE Main"
"NCERT"
"JEE Advanced"
"IAS Coaching"
"CBSE Sample Papers"
"CBSE Question Papers"
uj5u.com熱心網友回復:
我嘗試了 Byju 網站上的“聯系我們”按鈕,它對我有用。您需要向下滾動到該元素,然后單擊它們。
By contactUsLink = By.xpath("//a[text()='Contact Us']");
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].scrollIntoView(true);",
driver.findElement(contactUsLink));
log.info("Scrolling down");
driver.findElement(contactUsLink).click();
uj5u.com熱心網友回復:
謝謝大家的回答。我錯誤地穿越到孩子身邊。這是我如何做到的,我僅使用 CSS 選擇器從父級遍歷到子級,并且它起作用了。我正在發布代碼,因此它可以幫助某人。
package WebApps;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class mmt {
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
System.setProperty("webdriver.chrome.driver", "D:\\QA Workspace\\Browser Drivers\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.get("https://byjus.com/");
WebElement footerDriver = driver
.findElement(By.cssSelector("div[class='row footer-align footer-mobile-res']" "> div:nth-child(1)"));
footerDriver.findElement(By.xpath("//div[1]/ul[1]"));
int links = footerDriver.findElements(By.tagName("a")).size();
for (int i = 0; i < links; i ) {
String linksToOpen = Keys.chord(Keys.CONTROL, Keys.ENTER); //
System.out.println(footerDriver.findElements(By.tagName("a")).get(i).getText()); // //
System.out.println(footerDriver.findElements(By.tagName("li")).get(i).getText()); //
footerDriver.findElements(By.tagName("a")).get(i).sendKeys(linksToOpen);
}
// Amazon.in facing problem here too
System.setProperty("webdriver.chrome.driver", "D:\\QA Workspace\\Browser Drivers\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.get("https://www.amazon.in/");
// div.makeFlex.appendBottom40.footerLinks
WebElement footerDriver = driver
.findElement(By.cssSelector("div[class='navFooterVerticalRow navAccessibility'] > div:nth-child(1)"));
int links = footerDriver.findElements(By.tagName("a")).size();
//
for (int i = 0; i < links; i ) {
String linksToOpen = Keys.chord(Keys.CONTROL, Keys.ENTER);
footerDriver.findElements(By.tagName("a")).get(i).sendKeys(linksToOpen);
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/316792.html
上一篇:Cypress代表回圈中的OR
下一篇:如何斷言不出現警報?
