社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

JeffC

JeffC 最近创建的主题
JeffC 最近回复了
6 年前
回复了 JeffC 创建的主题 » 我不能用Python Selenium单击元素

你可以做一些事情。。。

  1. 定义全局默认等待时间,然后在创建的每个等待中使用该时间。

    default_wait_time = 10 # seconds
    ...
    wait = WebDriverWait(driver, default_wait_time)
    
  2. 在将多次使用wait的方法内部,可以实例化wait,将其存储在变量中,然后重用它。

    def my_method(self):
        wait = WebDriverWait(driver, 10)
        wait.until(EC.visibility_of_element_located((By.ID, "username")).send_keys("username")
        wait.until(EC.visibility_of_element_located((By.ID, "password")).send_keys("password")
        wait.until(EC.element_to_be_clickable((By.ID, "login")).click()
    
  3. 定义一个默认的WebDriverWait实例,然后重复使用它。

    注意:如果正在或将要并行运行脚本,则需要非常小心使用此方法,因为WebDriverWait的实例绑定到特定的驱动程序。

    # some global location
    wait = WebDriverWait(driver, 10)
    ...
    # in your script, page object, helper method, etc.
    wait.until(EC.element_to_be_clickable((By.ID, "login")).click()
    
6 年前
回复了 JeffC 创建的主题 » python selenium-选择子元素

您正在查找起始元素下的元素。为了做到这一点,你必须使用自轴, . ,例如 .//a[@href] 是的。指示从当前元素开始并在其下搜索的。因为您没有包含它,所以xpath搜索整个页面,即使您的代码似乎表明(在您理解原因之前,它以这种方式工作有点令人困惑)它应该从 obj_div 元素和只搜索后代。

附加说明:

你的巢 try 不需要,因为您正在使用 .find_elements_* 是的。它总是返回一个集合,因此您必须查看该集合是否为空,才能知道是否找到了元素。

你的完整代码和编辑看起来像

browser.get(url)

elems = []
try:
    obj_div = browser.find_element_by_class_name("jss504")
    elems = obj_div.find_elements_by_xpath(".//a[@href]")
except NoSuchElementException:
    pass

print(len(elems))

说到这里,我建议您使用nic laforge建议的css选择器。我只想解释你的问题的答案,并提供一些额外的反馈,以防将来对你有用或对他人有用。

6 年前
回复了 JeffC 创建的主题 » 如何使用python selenium脚本将数组发送到文本框?

这就是用python打印数组本身时字符串数组的外观。您需要一次使用一个元素遍历数组。

mylist = ['1','2','3']
print(mylist)

这张照片 ['1', '2', '3']

你想要

for list_item in mylist:
    print(list_item)

还有指纹

1
2
3

更具体地说

for list_item in mylist:
    ...
    driver.find_element_by_xpath('//*[@id="operand.action_(id=7)"]').send_keys(list_item)

附带说明:如果您使用的只是id,那么为什么要使用xpath?只使用

driver.find_element_by_id('operand.action_(id=7)')