www.academia.srmuniv.ac.in是网站。我正在使用Python 2.7编写脚本,并在Chrome上执行它。我希望从页面中选择“电子邮件地址”输入元素。我已经尝试了所有的选择器,但它似乎并没有工作。说它无法找到元素。硒webdriver不选择用户名输入元素
它不是我的配置问题,因为我可以选择其他网站上的元素。但是在这个网站上,我无法选择电子邮件地址输入,密码输入和登录按钮。
他们能够防止这种行为是安全吗?请帮忙。
www.academia.srmuniv.ac.in是网站。我正在使用Python 2.7编写脚本,并在Chrome上执行它。我希望从页面中选择“电子邮件地址”输入元素。我已经尝试了所有的选择器,但它似乎并没有工作。说它无法找到元素。硒webdriver不选择用户名输入元素
它不是我的配置问题,因为我可以选择其他网站上的元素。但是在这个网站上,我无法选择电子邮件地址输入,密码输入和登录按钮。
他们能够防止这种行为是安全吗?请帮忙。
需要内部表格元素交互之前切换到几个iframe
元素:
driver.switch_to.frame(driver.find_element_by_xpath('//iframe[@urltype="zc_cpLoginUrl"]'))
driver.switch_to.frame('zohoiam')
的Email Address
字段位于内iframe
与name
属性作为zohoiam
这又是内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")
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("[email protected]");
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();
没有安全检查,只要你在硒中应用了框架的概念,那么你就很好。 –
非常感谢,它的工作,但你能解释一下这是如何工作? –
['iframe'](https://www.w3schools.com/tags/tag_iframe.asp)是一个具有自己的DOM的单独的HTML文档。直到你[切换到'iframe']这个DOM里面的元素是无法访问的(https://computerrecipes.wordpress.com/2012/08/23/selenium-webdriver-interact-with-an-element-inside-an-iframe/ )。您可以检查所需电子邮件输入字段的祖先,您会发现类似'