【问题标题】:python webdriver failed to click button after page refresh页面刷新后python webdriver无法单击按钮
【发布时间】:2013-07-10 08:59:19
【问题描述】:

我正在测试一个网页。当我选择某些东西时,会出现一个弹出窗口

当弹出窗口自动消失时,当我想尝试单击另一个按钮时。 点击按钮失败,但可以找到按钮。

有没有什么方法可以让 python 与 selenium 获得焦点?由于最后一次点击没有发生

测试链接:https://www-01.ibm.com/products/hardware/configurator/americas/bhui/launchNI.wss

driver.get('www-01.ibm.com/products/hardware/configurator/americas/bhui/…) 
driver.find_element_by_id("modelnumber").send_keys("7383AC1") 
driver.find_element_by_name("submit").click() 
element1 = driver.find_element_by_xpath("//label[contains(text(),'SLES for SAP Apps 8 Skt Virt Unlimited Subs Only 5Yr (5731SLX)')]")
id=element1.get_attribute('for') 
driver.find_element_by_id(id).click()
driver.find_element_by_css_selector("img[alt=\"Continue\"]").click()

【问题讨论】:

  • 举个例子就好了。什么弹窗?在哪里?它是如何创建的?你得到什么错误信息?你用的是什么代码?什么浏览器?
  • 我的代码和上面一样。我不知道为什么没有点击事件发生,也没有任何错误消息@Arran
  • 我已经更新了我的问题@user1177636
  • 你最后的click操作是没有调用方法。你有.click 而不是.click()。也许是一个错字,但至少要检查一下。
  • @MarkRowlands,啊......这是一个粘贴错误。我已经确认“.click”在我的代码中。

标签: python selenium focus


【解决方案1】:

我已经检查了我的代码,解决了超时问题

更改自:

wait=ui.WebDriverWait(driver,10)

到:

wait=ui.WebDriverWait(driver,300)
wati.until(EC.staleness_of(driver.find_element_by_id("genMask_c")), 'visible')

【讨论】:

    【解决方案2】:

    这是对我有用的代码,可以点击继续,我只添加了 time.sleep 并更改了对象 ID 定位器

    from selenium import webdriver
    
    import time
    
    driver=webdriver.Firefox()
    driver.get('https://www-01.ibm.com/products/hardware/configurator/americas/bhui/launchNI.wss') 
    driver.find_element_by_id("modelnumber").send_keys("7383AC1") 
    driver.find_element_by_name("submit").click() 
    element1 = driver.find_element_by_xpath("//label[contains(text(),'SLES for SAP Apps 8 Skt Virt Unlimited Subs Only 5Yr (5731SLX)')]")
    id=element1.get_attribute('for')
    driver.find_element_by_id(id).click()
    time.sleep(70)
    driver.find_element_by_id("continueBottom").click()
    print 'done'
    

    【讨论】:

    • 谢谢。再多一个嗯......有什么方法可以确认网页的状态而不是'time.sleep'? ——
    • @Stella 你可以等待直到 IBM 加载图像消失......之后尝试点击继续按钮它应该可以工作
    • 我试过“等到”来等待图像“请稍候...”未显示在 UI 上,但总是出现 TimeoutException。你有什么想法吗?已经更新代码如下答案
    猜你喜欢
    • 1970-01-01
    • 2014-10-21
    • 2014-04-10
    • 1970-01-01
    • 1970-01-01
    • 2016-07-12
    • 2019-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多