简体   繁体   English

我的 if/else 表达式不起作用我不知道为什么?

[英]My if/else expression is not working I don't know why?

My code:我的代码:

website = browser.find_element_by_link_text('Website')

if website:
    website.click()
else:
    print('no website')

What I am trying to do is click the button if it is available on the page.我要做的是单击页面上可用的按钮。 If the button isn't available I want it to print no website available on the console and proceed to the next step.如果该按钮不可用,我希望它在控制台上打印没有可用的网站并继续下一步。

I do not know what I am doing wrong does anyone know how to do fix this?我不知道我做错了什么有人知道如何解决这个问题吗?

Thanks in advance I am new to coding!在此先感谢我是编码新手!

Before you find an element, you need first visit a website.在找到元素之前,您需要先访问一个网站。

driver = webdriver.Firefox()
print('Acessando web site: {}'.format(os.getenv('VISIT_URL')))
driver.get('www.example.com')
#here onwards you can access browser elements like buttons links etc

You are giving a instance of Web element to if() condition, where a boolean expression is expected.您将 Web 元素的实例提供给 if() 条件,其中需要 boolean 表达式。

1) Try checking the presence first using find_elements_by_link_text() # _elements_ 1) 尝试首先使用find_elements_by_link_text() # _elements_检查存在性

if len(driver.find_elements_by_link_text('Website')) > 0: 
    driver.find_element_by_id('Website').click()

2) Or use expected_conditions to check whether the element is available; 2)或者使用expected_conditions检查元素是否可用; expected_conditions documentation 预期条件文档

3) Or use try/except block; 3) 或者使用 try/except 块;

    try:
        website = driver.find_elements_by_link_text('Website')
    except NoSuchElementException:
        # code to execute if the expected element is not available

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM