当前位置: 首页 > 知识库问答 >
问题:

Selenium即使从源代码中复制元素后也未发现元素异常

鲁洋
2023-03-14

我正在尝试简单地登录到这个页面来访问LexisNexis。下面是我的代码:

from selenium import webdriver
browser = webdriver.Firefox(executable_path='/usr/local/bin/geckodriver')
type(browser)

browser.get('https://sfx.carli.illinois.edu/sfxuiu?url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&ctx_enc=info:ofi/enc:UTF-8&ctx_ver=Z39.88-2004&rfr_id=info:sid/sfxit.com:azlist&sfx.ignore_date_threshold=1&rft.object_id=63750000000001351&svc.fulltext=yes')
linkElem2 = browser.find_element_by_link_text('LEXIS NEXIS DATABASES') 
type(linkElem2)
linkElem2.click()
alert = browser.switch_to.alert
alert.accept()

loginElem = browser.find_element_by_id('j_username')
loginElem.send_keys('username')
passElem = browser.find_element_by_id('j_password')
passElem.send_keys('password')
passElem.submit()

下面是html源代码:

div class="form_row"

label for="j_username"
Enter your strongNetID:/strong/label

input id="j_username" name="j_username" autocomplete="OFF" autocapitalize="off" autocorrect="off" value="" type="text"
/div

共有1个答案

韩明德
2023-03-14

1.问题“lexis NEXIS databases”链接打开新窗口,您必须切换到它才能登录,在python中处理多个窗口:

from selenium import webdriver

browser = webdriver.Firefox(executable_path='/usr/local/bin/geckodriver')
browser.implicitly_wait(5)

browser.get('https://sfx.carli.illinois.edu/sfxuiu?url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&ctx_enc=info:ofi/enc:UTF-8&ctx_ver=Z39.88-2004&rfr_id=info:sid/sfxit.com:azlist&sfx.ignore_date_threshold=1&rft.object_id=63750000000001351&svc.fulltext=yes')
browser.find_element_by_link_text('LEXIS NEXIS DATABASES').click()

browser.close()
browser.switch_to.window(browser.window_handles[0])

browser.find_element_by_id('j_username').send_keys('username')
passElem = browser.find_element_by_id('j_password')
passElem.send_keys('password')
passElem.submit()
from selenium import webdriver

browser = webdriver.Firefox(executable_path='/usr/local/bin/geckodriver')
browser.implicitly_wait(5)

browser.get('https://compass2g.illinois.edu/webapps/login/')
browser.find_element_by_link_text('Login with your Illinois NetID').click()

browser.implicitly_wait(5)

browser.find_element_by_id('j_username').send_keys('username')
passElem = browser.find_element_by_id('j_password')
passElem.send_keys('password')
passElem.submit()
 类似资料:
  • 问题内容: 我正在尝试使用after伪元素向网站添加一些效果。 和样式表: 我看到正在应用.product-show .readMore.less的样式,但是当我从Chrome(最新版本)/ MacOS检查站点时,在HTML块中看不到::after表示法。我读到一些较旧的浏览器有时会出现问题,但是我认为,如果我正确定义样式,我应该至少可以看到:: after伪元素表示法。我究竟做错了什么? 问题答

  • 请参考截图。我正试图单击“取消”按钮,如我的截图所示。即使元素的ID存在,我也无法单击按钮。弹出窗口既不是一个新窗口,也不像是一个警告我。我试图搜索是否是窗口句柄的问题。但是当我搜索窗口句柄时,它只给我一个数字: 收到错误消息- 线程“main”org.openqa.selenium.nosuchelementexception:没有这样的元素:找不到元素:{“method”:“id”,“sele

  • 我正在开发一个使用Akka Http和Akka流的客户机-服务器应用程序。主要思想是服务器必须使用来自Akka Streams的源来提供http响应。 问题是服务器在向客户机发送第一条消息之前积累了一些元素。但是,我需要服务器在源生成新元素时立即发送元素到元素。 我同时获得所有元素,而不是每2秒接收一个元素。 有什么想法可以“强制”服务器发送每个元素,因为它是从源头出来的吗?

  • 我的代码: 我有一个问题即使它存在,也找不到该元素。我用汤仔细检查了元素是否确实存在,并且它按照输出进行操作。 输出: 我有一个遍历每个应用程序域的循环(包含来自每个的数据)但是,它在大多数情况下都会找到并单击元素,但对于某些元素却没有,我不知道为什么。 这是站点html。有许多,每个都包含不同的,我需要单击它

  • 这是我写的,这是一个简单的程序,可以登录我的instagram帐户,凭证已更改: 我不知道它为什么会出错。请帮忙。 Chrome确实打开了登录页面,但找不到元素。 附言:你可以猜到我是新来的 编辑: 我想,当我使用time.sleep几秒钟,它正常工作......但我不认为这是修复它的最佳方式,所以请注意,并建议我一些东西,或者这是它实际上是如何工作的......

  • 我已将selenium升级到最新版本3.14.0,发现以下方法正在抛出类强制转换异常 新动作(驱动程序)。moveToElement(元素)。单击()。build()。执行(); JAVAlang.ClassCastException:com。祈祷。乌提尔斯。记录器。EventWebDriver$EventFiringWebElement无法强制转换到组织。openqa。硒。互动。内部的可定位