【问题标题】:Not selecting from city field using selenium java不使用 selenium java 从城市字段中选择
【发布时间】:2020-10-23 07:04:40
【问题描述】:

没有通过在Makemytrip 应用程序上使用 selenium webdriver 和 java 语言从城市字段中进行选择。

public class LoginPage {
    public static void main(String[] args) {


        System.setProperty("webdriver.chrome.driver", "chromedriver.exe");

        WebDriver driver = new ChromeDriver();
        driver.get("http://www.makemytrip.com/");
        driver.manage().window().maximize();
        driver.findElement(By.id("fromCity")).click();
    }
}

控制台错误:

线程“主”org.openqa.selenium.WebDriverException 中的异常: 元素点击被拦截:元素输入数据-cy="fromCity" id="fromCity" type="text" class="fsw_inputField font30 lineHeight36 latoBlack" readonly="" value="Delhi"> 在点 (244, 255)。其他元素会收到点击:div data-cy="outsideModal" class="loginModal displayBlock modalLogin dynHeight 个人 ">

【问题讨论】:

标签: java selenium


【解决方案1】:

您可以使用下面的代码单击,因为您可以通过首先将鼠标指针移动到该元素然后单击该元素来完成您正在尝试的操作。

所以使用下面的代码:

WebDriver driver = new ChromeDriver();
driver.get("http://www.makemytrip.com/");
driver.manage().window().maximize();  
Actions action=new Actions(driver);
WebElement fromCity=driver.findElement(By.id("fromCity"));
action.moveToElement(fromCity).doubleClick().perform();

【讨论】:

    【解决方案2】:

    根据控制台错误:元素单击被拦截。另一个类以 loginmodal 开头的 web 元素正在等待单击。主页上嵌入了一个登录页面或框架。因此您尝试单击的元素被隐藏。

    您可以使用以下方法查找帧数

    List frame=driver.findElements(By.tagname(‘iframe’)); System.out.println(“帧数:” + frame.size());

    您可以在

    的帮助下切换到框架

    driver.switchTo().frame(1);

    然后处理登录页面,然后切换到主页

    driver.switchTo().defaultContent();

    这会将您重定向到主页,然后尝试定位您想要的网页元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多