修复使用Python的硒形式的等待时间

发布于 2025-01-22 21:01:23 字数 884 浏览 0 评论 0原文

我是Python的新手,并且正在尝试自动化一个表格。我已经完成了所有工作,但是当试图“提交”时,它没有读取XPath,因此没有单击。

html:

<input style="text-align: center; height: 24px;" onclick="return (Button.OnClick(this, event));" onfocus="return (Button.OnFocus(this, event));" id="FormControl_V1_I1_B12" scriptclass="Button" class="t_cP1RLqWVMhs644yI_0 bg_cP1RLqWVMhs644yI_0 a4_cP1RLqWVMhs644yI_0" wrapped="true" direction="ltr" viewdatanode="13" formid="FormControl" originalid="V1_I1_B12" tabindex="0" title="" buttonid="CTRL10_5" value="Submit" type="button">

这是python代码(第二代码处理OK弹出窗口):

click_value = web.find_element(By.XPATH('//*[@id="FormControl_V1_I1_B12"]')).get_attribute("onclick")
print(click_value)

web.switch_to.alert.accept()

element快照:

此处html标签:

“在此处输入图像说明”

I'm new to Python and am trying to automate a form fill up. I have done all the work but when trying to "Submit" it's not reading the XPATH and hence not clicking.

HTML:

<input style="text-align: center; height: 24px;" onclick="return (Button.OnClick(this, event));" onfocus="return (Button.OnFocus(this, event));" id="FormControl_V1_I1_B12" scriptclass="Button" class="t_cP1RLqWVMhs644yI_0 bg_cP1RLqWVMhs644yI_0 a4_cP1RLqWVMhs644yI_0" wrapped="true" direction="ltr" viewdatanode="13" formid="FormControl" originalid="V1_I1_B12" tabindex="0" title="" buttonid="CTRL10_5" value="Submit" type="button">

Here is the Python Code (the 2nd code handles the Ok popup):

click_value = web.find_element(By.XPATH('//*[@id="FormControl_V1_I1_B12"]')).get_attribute("onclick")
print(click_value)

web.switch_to.alert.accept()

Element snapshot:

enter image description here

Here is the HTML tag:

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

江心雾 2025-01-29 21:01:23

要单击元素,您需要诱导 webdriverwait element_to_be_clickable() ,您可以使用以下任何一个 >定位器策略

  • 使用 css_selector

      webDriverWait(驱动程序,20).until(ec.element_to_be_be_clickable((((by.css_selector)
     
  • 使用 xpath

      webDriverWait(驱动程序,20).until(ec.element_to_be_be_clickable(((by.xpath,“ // input,”@id ='formcontrol_v1_i1_b12'和@formid ='formID ='formcontrol'] [@formcontrol'] ]“)))。点​​击()
     
  • 注意:您必须添加以下导入:

     来自selenium.webdriver.support.ui导入webdriverwait
    从selenium.webdriver.common.通过进口
    从selenium.webdriver.support进口预期_conditions作为ec
     

To click on the element you need to induce WebDriverWait for the element_to_be_clickable() and you can use either of the following locator strategies:

  • Using CSS_SELECTOR:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input#FormControl_V1_I1_B12[formid='FormControl'][value='Submit']"))).click()
    
  • Using XPATH:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@id='FormControl_V1_I1_B12' and @formid='FormControl'][@value='Submit']"))).click()
    
  • Note: You have to add the following imports :

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文