小编th2*_*112的帖子

硒等待元素可点击python

全部,我需要一些有关Selenium等待的帮助。我似乎无法弄清楚如何等待元素准备就绪。

我需要等待的元素可以通过下面的代码使用脚本找到并单击...

CreateJob = driver.find_element_by_xpath(".//*[@id='line']/div[1]/a")
Run Code Online (Sandbox Code Playgroud)

要么

CreateJob = driver.find_element_by_partial_link_text("Create Activity")
Run Code Online (Sandbox Code Playgroud)

我需要等待此元素在页面上并且可以单击,然后再尝试单击该元素。

我可以使用该sleep命令,但是我必须等待5秒钟或更长时间,这似乎是不可靠的,并且8次中有1次出错。

我似乎找不到要使用的正确语法。

HTML代码如下。

<document>
<html manifest="https://tddf/index.php?m=manifest&a=index">
<head>
<body class="my-own-class mozilla mozilla48 mq1280 lt1440 lt1680 lt1920 themered" touch-device="not">
<noscript style="text-align: center; display: block;">Please enable JavaScript in your browser settings.</noscript>
<div id="wait" style="display: none;">
<div id="processing" class="hidden" style="display: none;"/>
<div id="loading" class="hidden" style="display: none;"/>
<div id="loadingPartsCatalog" class="hidden"/>
<div id="panel">
<div id="top-toolbar" class="hidden" style="display: block;">
<div id="commands-line" class="hidden" style="display: block;">
<div id="line">
<div class="action-link">
<a class="tap-active" href="#m=activity/a=set" action_link_label="create_activity" component_gui="action" component_type="action">Create …
Run Code Online (Sandbox Code Playgroud)

python selenium

2
推荐指数
1
解决办法
6619
查看次数

Python中的Selenium如果元素不存在,如何使用If - else代码

总而言之,我需要一些严肃的"愚蠢"的例子,说明如何在Python中编写代码,如果元素存在或不存在则会执行某些操作.我是编程的新手,我已经回顾了几天的帖子,我似乎无法弄清楚....

这是我想要做的.

from selenium.common.exceptions import NoSuchElementException, staleElementReferenceException

    elem = driver.find_element_by_partial_link_text('Create Activity')

    print("Searching for Create Activity.")

    if elem.is_displayed():
        elem.click() # this will click the element if it is there
        print("FOUND THE LINK CREATE ACTIVITY! and Clicked it!")
    else: 
        print ("NO LINK FOUND")
Run Code Online (Sandbox Code Playgroud)

所以,假设存在一个LINK,即element_by_partial_link_text('创建活动')

我得到了正确的答复......正在搜索创建活动.发现链接创造活动!并点击它!

我的问题是没有匹配的链接 element_by_partial_link_text('Create Activity')

我没有得到我在其他声明中所期望的东西. print ("NO LINK FOUND")

我明白了......

回溯(最近一次调用最后一次):文件"",第1行,文件"C:\ Program Files(x86)\ Python35-32\lib\site-packages\selenium\webdriver\remote\webdriver.py",第341行,在find_element_by_partial_link_text中返回self.find_element(by = By.PARTIAL_LINK_TEXT,value = link_text)文件"C:\ Program Files(x86)\ Python35-32\lib\site-packages\selenium\webdriver\remote\webdriver.py",第745行,在find_element {'using':by,'value':value})['value']文件"C:\ Program Files(x86)\ Python35-32\lib\site-packages\selenium\webdriver\remote\webdriver.py",第236行,执行self.error_handler.check_response(响应)文件"C:\ Program Files(x86)\ Python35-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py" ,第194行,在check_response中引发exception_class(message,screen,stacktrace)selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法定位元素:{"method":"部分链接文本","selector":"创建活动"}

我如何获得selenium Python来转换此异常或错误以不停止我的脚本并只处理ELSE语句.

谢谢,

python selenium

2
推荐指数
2
解决办法
1万
查看次数

标签 统计

python ×2

selenium ×2