www.academia.srmuniv.ac.in是该网站。我使用Python 2.7编写脚本,并在Chrome上执行它。我希望从页面中选择“电子邮件地址”输入元素。我已经尝试了所有的选择器,但它似乎没有工作。说它无法找到元素。
我的配置不是问题,因为我可以在其他网站上选择元素。但在这个网站上,我无法选择电子邮件地址输入,密码输入和登录按钮。
他们是否能够阻止此类行为?请帮忙。
答案 0 :(得分:0)
在与表单中的元素交互之前,您需要切换到多个iframe
元素:
driver.switch_to.frame(driver.find_element_by_xpath('//iframe[@urltype="zc_cpLoginUrl"]'))
driver.switch_to.frame('zohoiam')
答案 1 :(得分:0)
Email Address
字段位于 iframe
内, name
属性为 zohoiam
< / strong>再次位于 iframe
内, urltype
属性设置为 zc_cpLoginUrl
。因此,我们必须在2 iframes
内进行切换,以便与 Email Address
字段进行互动,如下所示:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
driver = webdriver.Chrome(executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
driver.get('https://academia.srmuniv.ac.in/login.jsp')
frame = driver.find_element_by_xpath("//iframe[@urltype='zc_cpLoginUrl']")
driver.switch_to_frame(frame)
WebDriverWait(driver, 10).until(
EC.frame_to_be_available_and_switch_to_it((By.NAME, "zohoiam"))
)
driver.find_element_by_xpath("//input[@id='Email']").send_keys("debanjan")
答案 2 :(得分:0)
System.setProperty("webdriver.gecko.driver", "./drivers/geckodriver.exe");
WebDriver driver=new FirefoxDriver();
driver.get("https://academia.srmuniv.ac.in/");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(2000, TimeUnit.SECONDS);
WebElement ele = driver.findElement(By.xpath("//iframe[@iscustomerportal='true']"));
driver.switchTo().frame(ele);
Thread.sleep(3000);
WebElement ele1 = driver.findElement(By.xpath("//iframe[@frameborder='0']"));
driver.switchTo().frame(ele1);
Thread.sleep(3000);
driver.findElement(By.xpath("//input[@id='Email']")).sendKeys("StackOverflow@mail.in");
String s= driver.findElement(By.xpath("//input[@id='Email']")).getText();
System.out.println(s);
driver.findElement(By.xpath("//input[@id='Password']")).sendKeys("hello");
Thread.sleep(3000);
driver.findElement(By.xpath("//input[@class='btn']")).click();